GAE users.get_current_user()返回None

时间:2012-11-12 05:59:37

标签: python google-app-engine python-2.7 webapp2

我正在尝试在Google App Engine应用中获取当前用户对象,但它似乎没有返回任何内容。

我使用https://github.com/takatama/gae-webapp2-auth/blob/master/handlers.py处的示例代码编写用户处理程序。

我的应用程序成功登录,但是get_current_user()返回NoneType。这个函数调用是在AJAX POST中,会话是不是初始化的?我是否必须在某处添加装饰器?

2 个答案:

答案 0 :(得分:3)

如果用户当前未登录,则函数get_current_user将返回None。处理此问题的一种常用方法是先调用user = users.get_current_user(),然后使用if块确定他们是否已登录(此示例取自docs):

user = users.get_current_user()
if user:
    greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
                (user.nickname(), users.create_logout_url("/")))
else:
    greeting = ("<a href=\"%s\">Sign in or register</a>." %
                users.create_login_url("/"))

self.response.out.write("<html><body>%s</body></html>" % greeting)

如果get_current_user()返回None,我们知道该用户未登录,因此我们使用users.create_login_url()创建一个允许用户进行身份验证的链接,之后get_current_user() User 1}}将返回该用户的{{1}}对象(我说'用户'足够吗?:)。

答案 1 :(得分:0)

问题是您注册的时间已经结束,因此如果您使用不同的Gmail登录谷歌应用引擎,它将正常工作:)