JWT(JSON Web Tokens)是一项RFC的标准,由RFC 7519定义,用于两个实体之间安全地传输用JSON表示的数据。在传输过程中,JWT表现为一个字符串,可以通过HTTP的参数或者Header传输,由三部分字符串用点号相连,格式如下:
header.payload.signature
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQiLCJleHAiOjEzNzE3MjA5Mzl9.
azSoRzdIHPLTNL2OsJsoXB1qCeThVYeEba_YYt6ZSTw
在应用程序中,JWT主要由JSON格式的header,payload,签名算法及密钥等内容组成。具体我们将在下文描述。
JWT主要的使用场景有:
- 认证:用户登录后,后续的交互使用JWT来验证
- 信息交换:可用于传输用户信息等数据
一个典型的场景如下图所示:
①首先用户通过用户名密码向认证服务器发起请求
②认证服务器核实