Как использовать Python Pylons для проверки подлинности файлов cookie во всем приложении? - PullRequest
2 голосов
/ 05 января 2012

Я использую Python + Pylons для аутентификации пользователя, а затем отправляю уникальную сумму md5 и сохраняю ее в виде файла cookie для проверки пользователя при каждой загрузке страницы. Где в моем приложении лучше всего разместить функции обработки файлов cookie, чтобы они были доступны во всем приложении? Должен ли я объявить глобальную переменную, такую ​​как USER, которая будет доступна в приложении, храня важные значения, такие как имя, фамилия и т. Д. Зарегистрированного пользователя? Спасибо.

Ответы [ 2 ]

3 голосов
/ 05 января 2012

Похоже, у вас уже есть идентификатор пользователя в куки, вы просто хотите сделать его более доступным Возможно, вам будет полезно иметь простую вспомогательную функцию, которая принимает запрос и возвращает пользователя.

def get_user(request):
    """ Load the user from the request, or None if unauthenticated."""
    if not hasattr(request, '_cookie_user'):
        # parse the userid from the cookie
        # make sure you actually trust this cookie by signing it
        # or storing it in something that's already protected
        # like beaker instead of a raw cookie
        userid = request.cookies['mycookie']
        request._cookie_user = DBSession.query(User).get(userid)
        if user and user.is_active:
            request._cookie_user = user
    return getattr(request, '_cookie_user', None)

Позже в вашем приложении вы можете просто позвонить user = get_user(request).

0 голосов
/ 05 января 2012

База данных или memcache обычно является местом для хранения такого рода информации.

Pylons предоставляет мензурку: http://docs.pylonsproject.org/projects/pylons-webframework/en/latest/sessions.html

...