Google Apps Engine / Django, вызывать действие при входе пользователя? - PullRequest
0 голосов
/ 23 сентября 2010

Я новичок в Google Apps Engine (работаю над существующим проектом для кого-то другого), и кажется, что он немного отличается от Django в том, что касается входа в систему и входа в систему Google, я пытаюсь сделать так приложение создает пользовательский файл cookie для пользователя при входе в систему, но не может найти обработчик для действия входа в систему ... Я прошу прощения за вопрос новичка, но был бы признателен, если кто-нибудь может указать мне правильное направление о том, как выполнить это. (просто вызывая действие при входе пользователя в систему)

Я смотрю на некоторые учебники, такие как этот: http://www.browse -tutorials.net / tutorial / login-register-logout-python-appengine , и в основном говорится, что вы просто генерируете ссылки, так как Google обрабатывает логин, поэтому я не могу найти решение такой проблемы.

Спасибо

1 Ответ

0 голосов
/ 28 сентября 2010

Я решил эту проблему, используя систему промежуточного программного обеспечения Django и сеанс.Я думаю, что использование сеанса - лучший способ гарантировать, что действие происходит только при входе в систему (тогда как URL-адрес может быть перезагружен вручную).

Сеансы Django не работают "из коробки", поэтому я реализовал свойсобственные сессии.Тем не менее, существует хорошая реализация для конкретных приложений, как указано в этой статье: http://blog.notdot.net/2010/02/Webapps-on-App-Engine-Part-5-Sessions

Я реализовал свой класс промежуточного программного обеспечения следующим образом и добавил его в MIDDLEWARE_CLASSES в settings.py:

class LoginManager(object):
    def process_view(self, request, view_func, view_args, view_kwargs):
        user = users.get_current_user()
        if user is not None:
            marker = Session.get(user.user_id())
            if marker is None:
                login_action()
                Session.set(user.user_id(), "true")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...