cookie
最基本的认证方式,但是不安全会.
session
session基于cookie的,存在cookie里,
token
token是把用户数据如字典,进行加密,然后存在前端浏览器storage中,每次请求都会携带(需要另外写代码,cookie是浏览器自动会携带),后端再进行解密,token主要扩展性很好.
JWT-token
Django中jwt-token和pyjwt原理
基于token, 完善了token的加解密过程.
头部,载荷,签证
头部:即header, header里是字典,字典里有类型,加密方法两个因素,然后把这个字典用base64加密.得到一个字符串
载荷:即payload, 也是一个字典,存一些用户数据和过期时间和签发时间(之后可以利用时间因素判断数据是否过有效期)等,然后base64加密, 得到一个字符串
签证:即signature, 将上面得到的两个字符串和secret再用header里指定的加密算法加密的到字符串
验证的时候使用hs256对头部和载荷两个字符串再加密得到的字符串和获取到的对比,如果一样就说明token是有效的,不一样就说明被篡改了.