簡體   English   中英

Django request.user是空的

[英]Django request.user is empty

使用django,我通過Google驗證用戶身份。 我收到了初始請求令牌並將用戶重定向到谷歌進行身份驗證。 之后谷歌將用戶重定向回我的網站(使用我提供的redirect_url)。

此時request.user.idNone所以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:任何人都面臨類似的事情? 基本上,沒有理由requestuser自動清除並且我被指定為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM