python - GAE users.get_current_user() 返回 None

标签 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 中并且 session 未初始化吗?我必须在某处添加装饰器吗?

最佳答案

如果用户当前未登录,函数 get_current_user 返回 None。处理此问题的一种正常方法是首先调用 user = users.get_current_user( ),然后使用 if block 来确定他们是否已登录(此示例取自 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 对象(我说“用户”了吗?:)) .

关于python - GAE users.get_current_user() 返回 None,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13339022/

相关文章:

python - mysqldb cursor.close() throws ProgrammingError : (2014, "commands out of sync...") 执行从文件读取的sql时

在 Leopard 上使用 PIL 和 Libjpeg 的 Python

java - GAE Memcache 读\写问题

python - 如何将函数的文档字符串放入变量中?

python - 使用 urlopen 我可以获取页面的 html,但缺少一个关键部分

python - 在 SQL 中搜索一个字段以查看它是否包含 python 变量

python - 使用 PIL 绘制粗体/斜体文本?

Python信息获取实现

java - 处理 AppEngine 内存缓存超时

java - Google App Engine session 丢失属性