前言
a few days ago, somebody asked me about distributed login logic.
at that time i didn’t have time to explain in detail.
better late than never.
so,here we go .
分布式系统登陆其实没多复杂点,主要还是细节的把控
重点细节
- token存储
- 用户信息存储
- 安全控制
实现方案
方案演变
单机系统的时候咱们常用session以及数据最多再加一个redis来实现登陆。
这一块感觉不用多说感觉大家应该都挺清楚
那么到了分布式架构的情况下又有何区别了?
首先session存储用户信息的方案已经不够用
其次登陆逻辑不该耦合在具体业务模块中了
最后多微服务情况下网关的存在所有不安全的请求该被网关拦截
根据上面的情况
现在咱们要做的其实和以前没多大区别只是把以前的一个整理拆分成各个模块来做。
方案实现
有很多小伙伴问我JWT什么的其实方案是灵活多变的,JWT也仅仅只是一种思路而已。
咱们学习任何一项技术学习的应该是背后的思想而不是具体实现
不然那永远是东施笑颦
如不知所以,然不知所来
如来~
划水够了,具体说说我具体的实现方案吧
使用会话凭证分级,登陆可以获取到永久token(其实也有过期时间只是比较长比如一个月),token可以换取临时会话temptoken(会话级token)
所以免