js-cookie设置token过期时间_SpringBoot + Shiro + JWT 权限管理,过期刷新,小程序商城...

前后端基于json进行交互,接口通过JWT无状态token进行权限校验

  • 登录时,密码验证通过,取当前时间戳生成签名Token,放在Response Header的Authorization属性中,同时在缓存中记录值为当前时间戳的RefreshToken,并设置有效期
  • 客户端请求每次携带Token进行请求
  • 服务端每次校验请求的Token有效后,同时比对Token中的时间戳与缓存中的RefreshToken时间戳是否一致,一致则判定Token有效
  • 当请求的Token被验证时抛出TokenExpiredException异常时说明Token过期,校验时间戳一致后重新生成Token并调用登录方法
  • 每次生成新的Token后,同时要根据新的时间戳更新缓存中的RefreshToken,以保证两者时间戳一致

shiro 配置可以去网上查资料,这里不再赘述

采用JWT有效期内刷新Token方案,解决并发请求问题

为避免多个请求同一时间分别生成不同的Token,我们引入redis锁机制。即我们的目的是同一个用户同一时间的不同请求,只允许获得锁的请求进行令牌刷新,其他的请求因为是在令牌有效期因此直接放行

f4397c50c486415f37baef2d3059299e.png

后台管理界面如下:

52293f86019dfeb96b184e03c2457899.png
72e51225718f90780df948f3b554bafb.png
cb66ff66dca869e3ccc554b7839d6636.png
6eba585ffddd6db149b035b5c256024b.png
44a92a04316914615b4cf2b920483a2f.png

小程序前端界面如下:

d72bd045f4512e8c559f86430d45312b.png
f001d69b6ab72c098dda3a416d884748.png
18ebcd2839b7ddc71d5fee0b304cf350.png
a672cbaeebf4d8a8597d85f9528bad17.png
8830349889326f8911a329ab58f8a3a4.png
4687013905b44c14d1f5771d0ee4d069.png
e31e342ebaa073d12ec9260fab000f35.png
4b95f227bdee1e0c4cb87f2f922a3989.png
81f70db99c314ed6885360838754ac58.png
9e6ba9c44393b52989c694124ee1f5c3.png
4fb4d985b55c51f947472dc29cc870c5.png

欢迎大家评论,对这项目感兴趣的朋友可以私信给我

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值