python登录状态保持_django 用户如何保持登录状态

用户保持登录状态 本篇是基于session验证登录

最不可行的方法就是在每一个需要验证用户的视图函数上加装饰器 @login_required 每个认证函数都加的话比较繁琐。

可行的办法是在访问视图函数前给他来一个拦截 中间件就派上用场了。

首先你需要定义一些不需要登录验证的页面集合。例如:

# 无需登录接口

no_login_urls = [ '/', '/check/', '/register/', '/login/']

然后你需要 在middleware里的AuthenticationMiddleware 定义视图函数 def process_request(self, request) 请求确定视图函数之前加入限制条件,以下为程序代码实现:

class AuthenticationMiddleware(MiddlewareMixin):

def process_request(self, request):

re_method = request.method

if re_method == 'OPTIONS' or (re_method == 'POST' and not request.body):

return HttpResponse()

if next((0 for x in no_login_urls if x in request.path), 1):

if not request.user.is_authenticated:

return HttpResponse(json.dumps(dict(message="not_login")))

if not request.user.status:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值