Python Django request.user为空
使用django,我通过Google对用户进行身份验证。我获取初始请求令牌&将用户重定向到google进行auth。之后,谷歌将用户重定向回我的网站(使用我提供的重定向url) 此时,Python Django request.user为空,python,django,django-views,django-authentication,django-validation,Python,Django,Django Views,Django Authentication,Django Validation,使用django,我通过Google对用户进行身份验证。我获取初始请求令牌&将用户重定向到google进行auth。之后,谷歌将用户重定向回我的网站(使用我提供的重定向url) 此时,request.user.id是None,request.user.username也是?我需要用户ID将access_令牌(google发送给我)输入数据库 Django中的request.user对象在什么条件下可以为空 更新1:当我从谷歌重定向回来,url模式为http://mywebsite.com/lse
request.user.id
是None
,request.user.username也是?我需要用户ID将access_令牌(google发送给我)输入数据库
Django中的request.user
对象在什么条件下可以为空
更新1:当我从谷歌重定向回来,url模式为http://mywebsite.com/lserv?s=goog
控件返回到my django views函数,但django向我发出请求。用户
将用户作为匿名用户,没有用户名或id。为什么
更新2:
现在所有这些都在python manage.py运行服务器上运行
更新3:有人遇到过类似的情况吗?基本上,没有任何原因,请求
中的用户
会自动清除&我被分配为匿名
用户。所有这些都发生在来自用户(来自浏览器)的url请求之间。为什么? 如果您使用的是来自google的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的身份验证机制与Google或任何其他身份验证服务无关。如果您想将第三方身份验证服务与Django站点集成,您应该自己完成
如果您使用的是oauth2(https://github.com/simplegeo/python-oauth2)图书馆,这是自述(https://github.com/simplegeo/python-oauth2/blob/master/README.md)有一个名为“登录Django w/Twitter”的部分可能会对您有所帮助。是否有通过谷歌认证的应用程序?你需要提供更多的信息。从你的问题中,我看不出google用户帐户与django用户有什么关系。您需要将google用户存储在本地,并将fk存储到django用户。如果您可以访问某个属性,则该属性不是空的。@ignacio我可以访问请求。用户,但它被分配给匿名用户-(Pdb)p request.user.\uu class_uu()(Pdb)p request.user.id None(Pdb)p request.user.username“”
当我从_服务回来时,django为什么不保持相同的用户状态?@pyeleven-Google auth只是一个例子,它很可能是其他一些auth服务。我的Q更基本。当我从Google被重定向回来时,url模式为http://mywebsite.com/lserv?s=goog
控件返回到my django views函数,但该用户是匿名用户
,没有用户名ot id。为什么?嘿,abdul,我没有使用谷歌的任何应用程序或oauth api。我正在使用oauth2
lib&在这个基础上编写了我的函数。。。实际上,我更感兴趣的是获取Django分配给该用户的用户ID。。。