2

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

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

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

4

2 回答 2

3

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

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用户的对象(我说的“用户”够吗?:))。

于 2012-11-12T06:28:23.793 回答
0

问题是你注册的时间已经结束了,所以如果你用不同的 gmail 登录到谷歌应用引擎,它会正常工作:)

于 2016-08-16T09:14:39.610 回答