JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案。直接根据token取出保存的用户信息,以及对token可用性校验,大大简化单点登录。
JWT=header+payload+signature(以.相隔)例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzYxMTk2NTYsInVzZXJuYW1lIjoiemRqIiwicGFzc3dvcmQiOiIxMjMifQ.ud_qtIYt3QywJkmjPZIXVPaW3SnWCFj9dLVYa7iTEIg
下面详细介绍一下每个部分。
头部(Header)
用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。{"alg":"HS256","typ":"JWT"}BASE64编码后为:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
载荷(playload)
(1)标准中注册的声明(建议但不强制使用)
(2)公共的声明
(3)私有的声明(过期时间,用户名等信息){"exp":1576119656,"username":"zdj","password":"123"}BASE64编码后:eyJleHAiOjE1NzYxMTk2NTYsInVzZXJuYW1lIjoiemRqIiwicGFzc3dvcmQiOiIxMjMifQ
签名(signature)
header(base64)+payload(base64)使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分ud_qtIYt3QywJkmjPZIXV