一、问题引入
cookie 、session、jwt本质上都是标识用户身份的技术 下面是它们的一些区别
二、cookie、seesion、token
2.1 cookie跟踪用户的流程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2.2 session
由于cookie保存在客户端且可能保存一些敏感信息 不安全 所以采用session,那么session又为何相对安全呢?先看看session跟踪会话的流程:
用户登录—服务器生成session id(不规律的字符串)–通过响应头set-cookie携带seesion id传递给浏览器—浏览器保存下来–后续请求通过cookie携带seesion id
2.3 token
由于可能有大量的用户访问服务器,导致大量session id存储在服务器,可能导致超载最终导致服务器崩溃。由此引入我们下面讲的一种技术:jwt(json web token)
2.3.1jwt的生成以及校验
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2.3.2 jwt的优点
- 支持pc和移动端
- 解决了集群环境下的认证问题
- 减轻了服务器的存储压力
三、常见面试题
- jwt相比于cas单点登录的区别?
- 为什么用JWT,常见的实现登录的方式有哪些(cookie+session,redis+token,JWT)
- 单点登录是怎么实现的?