【laralve项目】@15 再次分析JWT的自动刷新

本文结合实际项目,对JWT自动刷新进行了详细解释。介绍了路由定义,包括login和member路由,以及各中间件作用,如check.brower检测登录方式、check.webauth判断用户登录、refresh.token刷新token等。还提及清理登录信息,最后阐述了对webCheck方法的理解过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的操作里,只是把这个jwt的自动刷新写出来了,但是一直都没有进行实际项目的使用,那么今天就来结合实际项目在来解释一次,就当自己重温了

执行步骤

路由

在route里边定义了俩个路由,一个是login,一个是member

login路由用来登录

member是会员中心页面
在这里插入图片描述

login路由中的check.brower中间件作用

由于项目的特殊,此项目是一个存在微信端的。所以需要检测是需要账号密码登录,还是直接微信授权登录
在这里插入图片描述

member中的check.webauth中间件作用

这个中间件是判断用户是否登录的一个中间件,在这里需要简单的梳理一下
在这里插入图片描述
上边有一个webCheck的方法
这个方法是检测用户是否登录,如果用户登录了就会在redis中保存这个用户id
在这里插入图片描述
这个方法存在是需要在auth服务里边进行注册的
在这里插入图片描述

refresh.token中间件作用

这个存在就是为了刷新token,把token重新设置到响应头里边
在这里插入图片描述
当token不存在时直接让登录
在这里插入图片描述
还有下边的这个异常
当在jwt配置文件里边设置的刷新过期时间也到了的话,也直接跳转到登录页面
在这里插入图片描述

清理登录时保存的信息

在跳转到登录之前, 需要把redis里边的数据进行清空

个人理解

对于这个检测是否登录的这个webCheck这个方法,我现在还不能理解这个方法存在的意思所在,有时间会进行测试
因为判断用户是否登录可以使用token来判断,使用jwt来解析token判断有没有用户id,如果用用户id则为登录
但是现在还有一个疑问那就是在刷新token的时候,不知道这里跟webCheck有什么关联
所以暂时放着,后边在深入的进行理解完,在完善这篇文章
在这里插入图片描述

后续

在之前理解不了为什么要自定义webCheck这个方法
那是因为在api中之前使用的jwt,在jwt中是没有check的方法,也就是没有用来检验用户是否登录
在之前因为在web的路由里边使用auth::check()可以。但是在api中就是不可以的。所以我们需要扩展一个jwt_session来在api中判断

这个JWT已经困扰了很久了,这次是终于理顺了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咔咔-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值