使用Python Pylons,在整个应用程序中使用身份验证cookie的好方法是什么?

时间:2012-01-04 20:31:09

标签: python pylons

我正在使用Python + Pylons对用户进行身份验证,然后发送一个唯一的md5总和并将其存储为cookie以在每次加载页面时验证用户。在我的应用程序中哪里是放置cookie处理功能的最佳位置,以便在我的应用程序中可以访问它们?我应该声明一个全局变量,例如USER,它可以在整个应用程序中访问,存储登录用户的名字,姓氏等重要值吗?感谢。

2 个答案:

答案 0 :(得分:3)

听起来你已经在cookie中使用了userid,你只是想让它更容易访问。您可能会发现有一个简单的帮助函数可以接收请求并返回用户。

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)

答案 1 :(得分:0)

数据库或内存缓存通常是存储此类信息的地方。

Pylons提供Beaker:http://docs.pylonsproject.org/projects/pylons-webframework/en/latest/sessions.html