2021.11.18 孤尽训练营D24——授权管理

JWT

概念

Json Web token,是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准。定义了一种简洁的、自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息。因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法(对称加密算法)或者是RSA(非对称)的公私密钥对其进行签名。

JWT组成

Header头部:算法 & token类型

Payload负载:数据(非安全的,不能放敏感数据)

Signature签名:验证签名。

 签名过程:(以上图为例)

首先对header、payload进行base64编码成Encoded红色粉色部分(这一部分可以直接翻译成原来的样子),然后使用header中指定的签名算法(HS256)进行加密,变成encoded蓝色部分。三个部分通过 . 连接在一起就是JWT。

若是非对称加密算法,则使用私钥进行加密,公钥进行验签。

如何防篡改:

将蓝色部分签名解开,然后查看解开部分的header、payload是否与原来的一致(右边红色、粉色部分),如果相等,则说明该JWT没有被篡改,否则就是被篡改了。

为什么要用JWT

传统token验证:

 传统授权方法的问题是,用户每次请求资源服务,资源服务都需要携带令牌访问认证服务去校验令牌的合法性,并根据令牌获取用户的相关信息,性能低下。

JWT认证:

授权中心持有私钥,其他服务器持有公钥

授权中心对私钥进行签名,资源服务器拿到令牌之后,无需到授权中心调用oauthCheck,只需要使用公钥进行解密,验证是否正确,正确则令牌有效

具体实现参考 2021.11.19 孤尽训练营D25 笔记

发证书:JwtHelper.encode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值