Django request.user пуст - PullRequest
       37

Django request.user пуст

0 голосов
/ 31 марта 2011

Используя django, я аутентифицирую пользователя через Google.Я получаю начальные токены запроса и перенаправляю пользователя в Google для аутентификации.После чего Google перенаправляет пользователя обратно на мой сайт (используя предоставленный мною redirect_url).

На данный момент request.user.id равен None, так же как и request.user.username, почему это происходит?Мне нужен идентификатор пользователя для ввода access_tokens (который Google отправляет мне) в БД.

При каких условиях request.user объект в Django может быть пустым?

UPDATE1: Когда меня перенаправляют обратно из Google с шаблоном URL-адреса как http://mywebsite.com/lserv?s=goog, элемент управления возвращается к моей функции просмотра django, но django дает мне пользователя объекта request.user в качестве анонимного пользователя без имени пользователя или идентификатора.почему?

ОБНОВЛЕНИЕ2: пока все это работает на python manage.py runserver ...

ОБНОВЛЕНИЕ3: Кто-нибудь сталкивался с чем-нибудь подобным?по сути, без всякой причины user in request очищается автоматически, и меня назначают Anonymous пользователем.Все это происходит между URL-запросами пользователя (из браузера).Зачем?

Ответы [ 2 ]

1 голос
/ 11 апреля 2011

Механизм аутентификации Django не имеет ничего общего с Google или любым другим сервисом аутентификации.Если вы хотите интегрировать стороннюю службу аутентификации с вашим сайтом Django, вы должны сделать это самостоятельно.

Если вы используете библиотеку oauth2 (https://github.com/simplegeo/python-oauth2), это README (https://github.com/simplegeo/python-oauth2/blob/master/README.md) имеет раздел с именем «Ведение журнала»в Django W / Twitter "может помочь вам.

1 голос
/ 31 марта 2011

Если вы используете oauth api от Google.Чтобы получить пользователя, вы должны сделать что-то вроде этого

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.
            # ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...