JWT Token

JWT的认证流程图

JWT的认证流程图

流程说明:

    1. 浏览器发起请求登录,携带用户名和密码。
    1. 服务端验证身份,根据算法,将用户标识符打包生成 token。
    1. 服务器返回JWT信息给浏览器,JWT不包含敏感信息。
    1. 浏览器发起请求获取用户资料,把刚刚拿到的 token一起发送给服务器。
    1. 服务器发现数据中有 token,验证。
    1. 服务器返回该用户的用户资料。

JWT组成及构建方式

JWT组成及构建方式

JWT Options

1
2
3
4
5
6
7
8
9
10
11
12
# headers headers = {     'alg': "HS256",  # 声明所使用的算法
}
"""headers 中一些固定参数名称的意义"""
# jku: 发送JWK的地址;最好用HTTPS来传输
# jwk: 就是之前说的JWK
# kid: jwk的ID编号
# x5u: 指向一组X509公共证书的URL
# x5c: X509证书链
# x5t:X509证书的SHA-1指纹
# x5t#S256: X509证书的SHA-256指纹
# typ: 在原本未加密的JWT的基础上增加了 JOSE 和 JOSE+ JSON。JOSE序列化后文会说及。适用于JOSE标头的对象与此JWT混合的情况。
# crit: 字符串数组,包含声明的名称,用作实现定义的扩展,必须由 this->JWT的解析器处理。不常见。
1
2
3
4
5
6
7
8
9
10
11
# payload token_dict = {     'iat': time.time(),  # 时间戳
   'name': 'xyz' # 自定义的参数
}
"""payload 中一些固定参数名称的意义, 同时可以在payload中自定义参数"""
# iss 【issuer】发布者的url地址
# sub 【subject】该JWT所面向的用户,用于处理特定应用,不是常用的字段
# aud 【audience】接受者的url地址
# exp 【expiration】 该jwt销毁的时间;unix时间戳
# nbf 【not before】 该jwt的使用时间不能早于该时间;unix时间戳
# iat 【issued at】 该jwt的发布时间;unix 时间戳
# jti 【JWT ID】 该jwt的唯一ID编号

JWT Token
http://maitianxin.github.io/2022/04/14/other/jwt_token/
作者
Matianxin
发布于
2022年4月14日
许可协议