1. 了解 Session 认证的局限性
Session 认证机制需要配合 Cookie 才能实现。由于 Cookie 默认不支持跨域访问,所以当涉及到前端跨域请求后端接口的时候,需要做很多额外的配置,才能实现跨域 Session 认证
注意:
1. 当前端请求后端接口不存在跨域问题时,推荐使用 Session 身份认证机制
2. 当前端需要跨域请求后端接口的时候,不推荐使用 Session 身份认证机制,推荐使用JWT认证机制
2. 什么是 JWT
JWT(英文全称:JSON Web Token)是目前最流行的跨域认证解决方案
3. JWT 工作原理
用户的信息通过 Token 字符串的形式,保存在客户端浏览器中,服务器通过还原 Token 字符串的形式来认证用户的身份
4. JWT 的组成部分
JWT 通常由三部分组成,分别是 Header(头部)、Payload(有效载荷)、Signature(签名)
三者之间使用英文的 ","分割,格式如下
Header.Payload.Signature
JWT字符串示例
5. JWT 的三个部分各自代表的含义
JWT的三个组成部分,从前到后分别是 Header、Payload、Signature
Payload 部分是真正的用户信息,是用户信息经过加密后生成的字符串
Header 和 Signature 是安全性相关的部分,只是为了保证 Token 的安全性
6. JWT 的使用方式
客户端收到服务器返回的 JWT 之后,通常会将它储存在 localStorage 或 sessionStorage 中
此后,客户端每次与服务器通信,都要带上这个 JWT 的字符串,从而进行身份认证
推荐的做法就是:把 JWT 放在 HTTP请求头的 Authorization 字段中
Authorization: Bearer <token>