0

当我运行以下代码时

user = users.get_current_user()
if users.is_current_user_admin():
    loggedin = 'Admin'
elif user:
    loggedin = 'User'
else:
    loggedin = 'Anonymous'

在开发环境中,当我以管理员身份登录时获得管理员,以用户身份登录,在未登录时获得匿名。在生产环境中,我总是获得匿名。为什么这不起作用?

4

2 回答 2

1

该问题与 if/elif/else 或 users.create_login_url() 无关。问题是当用户使用 HTTPS 和 users.create_login_url() 登录时,App Engine 无法识别在 http 请求中登录的用户。我在这里创建了一个新问题。我相信这与 cookie 的设置方式有关。

代码在 Dev 而不是生产环境中工作的原因是开发环境如何处理 HTTPS url,它将其重新映射到 http 并为请求提供服务,从而避免了问题。

于 2012-06-09T18:47:45.547 回答
0

您首先需要通过 users.create_login_url() 登录

于 2012-06-06T01:25:30.770 回答