JSON Web Token(缩写 JWT)是目前最流行的跨域认证
解决方案。有如下特点:
JWT在服务端生成,保存在客户端,可以减轻服务器端管理的复杂性(服务端无状态)。
JWT包含信息,服务端可以解析和利用这些信息,可以选择是否加密。
JWT被签名,只有服务端可以验证其有效性,可以防止JWT被篡改。
JWT有过期时间,可以动态变化,避免被无限使用而存在安全隐患。
结构
JWT由三个部分组成
- Header(头部)
- Payload(负载)
- Signature(签名)
1 |
|
Header
1 |
|
使用Base64URL编码
Payload
官方定义了7个标准字段,可以自行增加。
1 |
|
使用Base64URL编码
Signature
1 |
|
使用
客户端一般保存到localStorage(推荐)或cookie(不支持跨域)中,通过HTTP请求头
1 |
|
或POST请求的数据体上送给服务器