课程名称:Spring Cloud / Alibaba 微服务架构实战
课程章节:第6章-授权、鉴权中心微服务总结
课程讲师:张勤一
课程内容:
1. 基于Session的身份认证
-
传统的做法是客户端存储Cookie(一般是Session id),服务器存储Session。
-
Session是每次用户认证通过以后,服务器需要创建一条记录保存用户信息,通常是在内存中,随着认证通过的用户越来越多,服务器的开销会越来越大。
-
在不同的域名之间切换时,请求可能会被禁止。即跨域问题。
2. 基于JWT Token 的身份认证
-
JWT 与Session的差异相同点是它们都存储用户信息;但是Session是存储在服务器端,JWT是存在客户端。
-
JWT方式将用户状态分散到了客服端中,可以明显减轻服务端的内存压力。
3. 基于JWT Token与基于Session身份认证的比较
-
解析方法:JWT使用算法直接解析得到的用户信息;Session需要额外的数据映射,实现匹配。
-
管理方法:JWT只有过期时间的显示;Session数据保存在服务器,可控性更强。
-
跨平台:JWT是一段字符串,可以任意传播;Session跨平台需要有统一的解析平添,较为繁琐。
-
时效性:JWT一旦生成,独立存在,很难做特殊控制;Session时效性完全由服务端的逻辑定义的。
tips: 各自都有优缺点,都是登录,授权的解决方案。