我们正在尝试将我们的应用放在Google Marketplace上,其中一项要求是使用OAuth2进行身份验证。不幸的是(奇怪的是),AppEngine没有这方面的选择。
目前,我们正在使用OpenID进行身份验证。我一直在尝试在线查找资源,但未能找到关于如何正确执行此操作的明确指南。
我担心的是:
dev_appserver.py
?user_id
属性。切换到OAuth2时,我可以依赖它具有相同的值吗?login: required
中的app.yaml
标记是否仍然按预期工作?此外,如果我们可以继续使用用户服务,那就太棒了。
编辑:稍微偏离主题,但我认为AppEngine docs for the Users service需要更新。它仍然表示支持OpenID是一种将您的应用程序与Google App Marketplace集成的强大方式",不再是这种情况。
答案 0 :(得分:2)
您提出了很多问题,因此我只会解决我知道答案的问题(将我们自己的应用程序从OAuth1迁移到OAuth2之后)。
注意:我最想强调的是这个问题,而Aha Moment对我来说是: 在安装GAM应用程序后访问用户可以访问的API可能完全分离与最终用户对您应用的访问权限。 I.E.从您的应用程序的域管理员获得权限后(在安装它之后),您可以使用您的App Engine服务帐户从服务器端访问所有API。仅当用户访问您的应用时才使用用户API。因此,完全分离。话虽如此,这是我的见解。
您要使用的范围取决于您需要的服务。我无法找到从旧范围到新范围的明确映射 - 您必须使用https://developers.google.com/oauthplayground/测试内容 我还建议您设置一个测试应用,仅用于OAuth测试。
就我们的应用而言,会话照常管理,您拥有通常的User对象并按照您的预期使用它。与Google API的互动是通过App Engine服务帐户完成的。更简单的说法是,您使用用户API管理用户对用户的访问权限和权限,Google使用服务帐户和管理员电子邮件生成的令牌管理对API的访问权限。 (这个问题是它自己的帖子)
我不确定你的意思。
用户API应按预期工作。
我们还没有(令人惊讶!),但我想这取决于您的实施
login: required
应按预期工作,因为它的工作方式与用户api相同