单点的登录相关

1.单点登录

登录之后,无需再次重复登录,即可操作项目的相关功能

包含两部分:登录,身份校验

1.用户点击登录页面输入用户登录信息

2.后台获取登录信息并以登录信息为条件查询数据

3.如果查询不到,提示信息错误

4.如果查到,制作token考虑到token的加密性,

(1)对于安全要求不高的情况可以直接使用UUID

(2)对于有较高安全要求的系统可以使用jwt,其中有效载荷里面存储我们的加密信息,我们项目中是将用户对应的P地址保存到载荷中的

5.为了实现单点这个功能,我们需要将token保存redis中,同时返回页面的时候浏览器的cookie中也会保存一份

6.重登成功重定向到用户登绿之前的页面

user -> 验证登陆信息 -> 组装JwtToken(ip、id、用户名) ->  JwtToken存入cookie ->  原页面1.

2.身份校验

 

1.我们项目中使用的gateway网关提供全局过滤器,我们会预先设置一些公共资源,也即预留黑白名单

2.根据用户的请求路径判断是否是公共资源,如果是放行,若不是,拦截并校验token正确性

3.为了校验token要尝试获取token值,根据前端将token保存位置的不同,可以从请求头中获取也可以从cookie中获取

4.先要判断token是否为空如果为空重新登录

5.token不为空,利用预先设置好公钥解析token主要判断有效载荷中IP信息,如果IP信息比对不上就重新登录

6.如果以上信息均没有异常直接放行,后续无需再次解析对比token

3.身份校验(同2) 

 

过滤器判断是否拦截 ->不拦截放行 -> 拦截获取token(同步操作从cookie中获取,异步操作从request头中获取) -> 验证token -> 有问题重定向login页面 -> 判断ip是否篡改 -> 验证通过就放行

3.1 为什么同步操作从cookie中取token,异步从request头里取token
同步操作从cookie中取token,异步从request头里取token的原因是因为cookie是存储在浏览器端的数据,而request头是存储在服务器端的数据。同步操作需要等待请求返回后才能获取到数据,而异步操作则可以在请求发送后立即返回结果。因此,为了避免同步操作阻塞页面的渲染,通常将token存储在cookie中;而为了提高响应速度和用户体验,通常将token存储在request头中 。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值