我为我的GoogleApps域开发了一个简单的AppEngine应用程序。访问权限仅限于我的域中的用户,并且该应用程序在域的管理控制台中启用。
应用程序中的身份验证/授权是使用decorator完成的,使用从API控制台下载的JSON客户端机密。我已经创建了"web应用程序的客户端ID"类型的客户端机密。
我在GET方法上的主要处理程序如下:
@decorator.oauth_aware
def get(self):
if decorator.has_credentials():
.... do stuff .....
else:
self.response.out.write("decorator doesn't have credentials")
问题是,当我登录我的帐户时,应用程序运行良好。对于同一域中的所有其他用户,我会收到"decorator没有凭据"错误。
有什么线索说明为什么会这样吗?
问题其实很简单:用户没有登录,应用程序没有显示登录窗口,而是崩溃了。
要显示登录窗口,我们应该使用@decorator.oauth_required
而不是简单的oauth_aware
,并将login: required
放在app.yaml文件