Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django request.user为空_Python_Django_Django Views_Django Authentication_Django Validation - Fatal编程技术网

Python Django request.user为空

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

使用django,我通过Google对用户进行身份验证。我获取初始请求令牌&将用户重定向到google进行auth。之后,谷歌将用户重定向回我的网站(使用我提供的重定向url)

此时,
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。。。