[英]Django request.user is empty
使用django,我通过Google验证用户身份。 我收到了初始请求令牌并将用户重定向到谷歌进行身份验证。 之后谷歌将用户重定向回我的网站(使用我提供的redirect_url)。
此时request.user.id
是None
所以request.user.username
为什么会发生这种情况? 我需要用户ID才能输入access_tokens(谷歌发送给我)到数据库中。
在什么条件下可以request.user
Django中的用户对象为空?
更新1:当我通过网址模式从Google重定向回来时http://mywebsite.com/lserv?s=goog
控件返回到我的django视图功能,但是django给了我request.user
对象用户作为匿名用户没有用户名或ID。 为什么?
UPDATE2:所有这一切都在python manage.py runserver
上运行,现在......
更新3:任何人都面临类似的事情? 基本上,没有理由request
的user
自动清除并且我被指定为Anonymous
用户。 所有这些都发生在用户(来自浏览器)的url请求之间。 为什么?
如果你使用谷歌的oauth api。 要获得用户,您必须执行此类操作
from google.appengine.api import oauth
# ...
try:
# Get the db.User that represents the user on whose behalf the
# consumer is making this request.
user = oauth.get_current_user()
except oauth.OAuthRequestError, e:
# The request was not a valid OAuth request.
# ...
Django的身份验证机制与谷歌或任何其他身份验证服务无关。 如果您想将第三方授权服务与您的Django站点集成,您应该自己动手。
如果你正在使用oauth2(https://github.com/simplegeo/python-oauth2)库,它的README(https://github.com/simplegeo/python-oauth2/blob/master/README.md)有一个名为“使用Twitter登录Django”的部分可能会对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.