前端也要了解 JWT 和 Session session
什么是 JWT ?
JWT(全称:JSON Web Token)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息 。该信息可以被验证和信任,因为它是数字签名的 。
JWT 作用、 有什么好处
1、授权
用户登录授权2、信息交换
可以进行签名,使用公钥/私钥可以验证内容是否被篡改3、支持跨域访问
Cookie 不允许跨域访问,token 不存在跨域限制,4、更适用于移动应用
原生平台(android、ios等)不支持 cookie ,token 的扩展性更强 。基于标准化标准化存在多个后端库5、性能
通过数据库查询 Session 信息,相比 HMAC SHA256 计算 token 验证和解析要更费时 。JWT 的问题
默认不加密,但可以加密服务器不保存会话状态,所以使用期间不可能取消 token 或更改 token 权限,一旦签发 token ,在有效期内会一直有效 。token 有效期不宜太长,不建议使用 http 传输,减少盗用 。JWT 的组成
这里推荐一个网站可以解析 JWT 的各个组成部分 " jwt.io/ ",如下如图所示:
文章插图
通过“.” 符号来分割成三个部分1、header 包含加密方式、type2、palyload 包含实际传递的参数内容(不要传递敏感数据,base64解码后可以看到,需要在额外加密一层)3、Signature 签名 主要决定了 header、Payload 有没有被篡改 什么是Session?
在专业术语中,Session是指会话控制,是保存在服务器上一种机制,当客户端访问服务器的时候,服务器会把信息以某种形式记录在服务器上,恰恰和Cookie相反 。
因为 http 是一种无状态的协议,所以为了辨别出是哪个用户,所以在服务器存储了一份用户登录信息,将登录信息在响应时传递给浏览器,并且保存在 cookie 中,以便于下次发起请求,这样服务器就能辨别出是哪个用户发起的请求 。这就是 session 认证 。【前端也要了解 JWT 和 Session session】Session 的缺点
数据通常保存在服务器内存中,随着用户增多,服务端的开销会明显增大 。难以适用单点登录移动端开发扩展性不好需要 CSRF 防护
推荐阅读
- 买车要了解什么
- 蔺相如的品质相关了解点第9点 蔺相如的品质
- 了解是个什么梗
- 区块链数字货币是什么 了解区块链货币
- bvi相关了解点第8点 bvi
- 南瓜怎么吃有营养 你了解了吗
- 绝对初学者应该如何了解比特币 BTC btc
- space你了解多少呢 room
- 房地产“三高”你真的了解吗 资产负债率计算公式
- 挖坑怎么玩 了解挖坑的游戏规则