Web

Django 通过中间件全局判断用户登录状态

Lan
Lan
2021-03-29 / 0 评论 / 470 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年03月29日,已超过1124天没有更新,若内容或图片失效,请留言反馈。

要求是这样的,因为有些页面需要获取当前登录用户信息,如果没有登录的话会是匿名用户,就会报错。

所以需要进行判断登录状态,如果未登录则跳转到登录页面。

本来想通过python的装饰器,后来发现可以通过中间件。

class AccountsAuthMiddleware(object):
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request, *args, **kwargs):
    # 获取访问路径,并判断长度,如果不等于1说明不在首页,则需要登录,则自动跳转到登录页面
        if len(request.get_full_path()) != 1:
            if request.user.is_anonymous:
                return redirect(reverse('TA:Login'))
        return self.get_response(request)

然后在settings->MIDDLEWARE中添加中间件


0

评论 (0)

取消