什么是JWT:
JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。
JWT的组成:
由三部分组成
头部(header)
JWT的头部承载的两部分信息:
声明类型,这里是jwt
声明加密的算法
载荷(payload)
载荷就是存放有效信息的地方
签证(signature)
这个签证信息由三部分组成:
hrader(base64后的)
payload(base64后的)
secred
这个部分需要base64加密后的header和base64加密后的payload使用“.”
连接组成的字符串,然后通过header中声明的加密方式进行加secret组
合加密,然后就构成了jwt的第三部分
Django中如何使用JWT:
首先在setting中声明:rest_framework_jwt
其次在序列化中四步走:
jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)
user.token = token
如何获取JWT中的payload数据:
1.收到jwt
2.JWT是拼接和成的,所以会生成俩个 . 着俩个.中间的数据就是payload
3.然后解析数据即可
为什么要使用JWT作为你登陆状态保持的手段?
1.每次请求的时候Token都会被发送。
2.Tokens存储在客户端。完全无状态,可扩展。
3.token在一段时间以后会过期