...小于 1 分钟
...大约 1 分钟
Token与JWT
Token与Jwt解决了Cookie与Session不能跨域的问题
当客户端发起登录请求后,服务器会进行登录认证,认证成功之后,会创建一个Token的字符串,并返回前段,前端拿到Token,后续的请求会将Token传给后端,后端拿到Token后会与库中的token进行校验,校验成功后会正常响应浏览器信息
JWT(JSON Web Token)是一种特定类型的Token,通常由三部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature)
- 头部(Header):头部通常包含两部分信息:令牌的类型(即JWT)和所用的加密算法,例如HMAC SHA256或RSA等。
- 载荷(Payload):载荷是Token的主体部分,包含有关用户或其他主体的信息。载荷可以包含预定义的声明(例如身份信息、权限等)以及自定义的声明。载荷通常被编码为JSON格式。
- 签名(Signature):签名是对头部和载荷的组合进行加密后得到的字符串,用于验证Token的真实性和完整性。签名通常使用头部中指定的加密算法对头部和载荷进行加密,并使用密钥进行签名。
...大约 4 分钟
...大约 2 分钟
Cookie与Session
Cookie用于解决HTTP无状态,但存在被劫持,篡改,盗用的风险。
Session是基于Cookie的解决HTTP无状态,但是会对服务器造成额外开销,增加服务器压力。
Cookie和Session有区别的核心原因在于内容的存储位置:Cookie存储在客户端,Session存储在服务端。
区别 | Cookie | Session |
---|---|---|
存储位置 | 客户端(浏览器) | 服务端 |
存储数据类型 | 一般为string类型 | 使用的语言所支持的数据结构 |
安全性 | 安全性稍差 | 较Cookie更安全 |
生命周期 | 可以长期保存 | 一般在关闭客户端后过期 |
灵活性 | 稍差 | 更灵活(可以存储在服务端,任意一个允许存储的地方) |
跨域问题 | 不能跨域 | 默认不能跨域 |
...大约 3 分钟