橙单微服务 JWT Token的用户验证部分

今天分享JWT Token的用户验证部分,通过这两点细节,应该都可以感受到,橙单对细节的把控,都是极为简单且实用的。

在橙单中,有存在4中请求

  1. 正常的,需要授权的请求。只有登录用户,且有权访问的用户可以被通过。
  2. 白名单请求,所有合法登录用户,均可访问,降低权限配置的复杂度。
  3. 纯免登陆请求,无论登录与否,均可访问。
  4. 纯免登录请求,登录用户和非登录用户,均可访问,但是不同的用户可以返回不同的数据,举个例子,app首页,没有登录的用户返回缺省的数据,登录用户可以返回个性化数据。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    这里有一个细节的处理,在橙单中,我们会尽最大可能,追求极致的效率。所以网关这里,因为是很多请求的入口,所以这里也做了优化,并没有从redis中全部取出,并在网关中比对,这样会增加网关和redis之间的通讯流量,同时也会加大网关的内存压力,而是直接在redis中验证,直接返回是否存在的结果。

其中,白名单url也会在登录的时候存入redis,从而可以极大的简化代码的复杂度。

最后分享一下,JWT Token的续租技术。

出于安全考虑,我们一般不会给JWT的的过期时间设置过长,这个不用讲也是可以理解的。

所以我们一般会设置30分钟左右的JWT过期时间,这样只有当连续30分钟,没有闲置,就是没有和后台有任何交互的时候,就会自动过期。

所以我们提供了自动刷新token续租的功能,否则即便30分钟之内有访问,也会突然要求退出登录,也是没有道理的。

在这里插入图片描述
在这里,我们会每五分钟更换一次,因为如果每次请求都更换,会导致网关加密压力过大,引擎tps和qps和并发量。毕竟加密比解密要慢很多,而且更加消耗cpu。

所以我们采取了这种方案,定时更换,比如5分钟更换一次,这个值,是可以配置的

这样的结果是,只有在连续30分钟,没有过请求的才会被要求重新登录。

最终的处理效果就是,安全,高效,灵活

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值