Cookie
属于HTTP协议 ,它的功能就是由服务器server 向客户端client(可以是浏览器),发送一段token(理解为 加密字符串),这个token 就是 cookie,并且这个token必须在你后续的所有请求中自动带上(每次向同域名的同一域名的服务器发请求自动带上),即 cookie: token。
Session
保存在服务器的内存/文件 里面,用来做映射对应关系,给用户传的随机数和真实数据的对应关系
JWT定义: json + web + token
- header- 加密算法方式 alg
- payload-存储的重要信息 json {uid=1}
- signature-密文 S
- 最终生成的
token = base64(header).base64(payload).base64(signature)- S= 加密 (私钥,base64(header),base64(body))
- JWT 实际上就是 加密(uid)
JWT用法
- 用户在登录时,前端 post请求 jwt ,服务器返回一个 jwt(1, uid=1, s),把jwt存到 localStorage里面,配置一下axios,让这个库所有请求的header 都带上 jwt去,Auth..字段
- Get / user, 服务器看 Auth头里有没有jwt,有就解密,看 加密的s里面的uid 与 第二部分的 uid=1的部分是否一样,一样说明没有改过。 得到uid之后就可以去数据库查到 user,变成json之后传给前端
jwt 也可以存到 cookie,之后就可以自动带上