繁体   English   中英

需要登录的装饰器和Django会话

[英]Login Required Decorator and Django Session

我正在按会话在Django中以用户身份登录,我使用文件来保存会话。 当用户登录时,它会创建一个会话,而在注销时,它将删除该会话,我想停止用户访问“ URL”(仅在登录后才可用)。但是当我使用登录名时,它无法识别“已登录”在用户会话中”并重定向到主页,因为在定义函数时,我在login_required装饰器中给出了login_url = 'home' 那么,如何使我的装饰器识别登录的会话?

不确定为什么使用登录必需的装饰器时无法识别登录的用户会话。 您可以使用以下装饰器来访问会话,用户和重定向。

def custom_login_required(function):
    def wrap(request, *args, **kwargs):
        session = request.session # this is a dictionary with session keys
        user = request.user
        if user.is_authenticated:
            # the decorator is passed and you can handle the request from the view
            return function(request, *args, **kwargs)
        else:
            return redirect('login')


    wrap.__doc__ = function.__doc__
    wrap.__name__ = function.__name__
    return wrap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM