flask-拦截器加重定向解决不同登陆状态限制登陆页访问

先说一下几个登陆状态的逻辑问题
1、如何做登陆状态的效验?
通过cookie效验是否存在,如果存在,则为登陆状态,否则为非登陆状态,如下图看,响应中添加cookie,并且存在cookie加密规则,因为cookie储存在客户端,相比session保存在服务的,相对缺少安全性,但是session面对多服务器情况下要一致的问题处理很麻烦,所以有加密规则的cookie相对很好使用,毕竟不存在绝对安全,只存在相对安全
在这里插入图片描述
那么如何判断cookie存在呢?这就涉及到拦截器的概念,在flask中,只需要一个装饰器就地解决,轻量级的flask学习成本真的低,真的喜欢,每次发送请求前都会进行拦截,这就给了我们过滤的机会,我的思路是,request.path方法获取到请求的路径,在用正在表达式判断是否是登陆页或是静态页面,静态页面不需要效验直接通过即可,但是登陆页就会出现很多情况了
在这里插入图片描述

2、效验后为存在登陆和非登陆状态,如果访问登陆页,会有什么情况?
a:登陆状态下,如果请求登陆页面,发生情况
b:登陆状态下,请求其他页面情况
c:非登陆状态下,请求登陆页面情况
d:非登陆状态下请求非登陆页面情况
实际上就是,登陆状态下,除去登陆页,任何页面都要通过拦截
非登陆状态下,除了登陆页,都要被拦截
所以需要做的处理就是,检查到存在cookie,说明在登陆状态下,如果监测到path是登陆页,就要重定向到首页,这样的话,你cookie只要存在,你在请求登陆,就会返回首页
检查cookie不存在,说明没有登陆,如果监测到path是登陆页,就通过拦截,让你处理登陆,只要不是登陆页,一切重定向到登陆页,所以一定要加入去登陆页的过滤,如果不加入

不加入逻辑:存在登陆状态,重定向到首页
不存在登陆状态,重定向到登陆页
如果,不存在登陆状态,访问登陆页呢?那就会重定向到登陆页,登陆页重定向到登陆页,不断的重定向自己
在这里插入图片描述

在这里插入图片描述

记得好像有一次发生这种问题,错误码528,但是又搜索不到,没有记录忘记了,记录是个好习惯

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值