jwt学习

jwt是如何验证的?

jwt保存在客户端,每次请求时都将其放在header中,这样服务器接收到请求后,取出jwt进行验证。

服务器应用在接受到JWT后,会首先对头部和载荷的内容用同一算法再次签名。那么服务器应用是怎么知道我们用的是哪一种算法呢?别忘了,我们在JWT的头部中已经用alg字段指明了我们的加密算法了。

如果服务器应用对头部和载荷再次以同样方法签名之后发现,自己计算出来的签名和接受到的签名不一样,那么就说明这个Token的内容被别人动过的,我们应该拒绝这个Token,返回一个HTTP 401 Unauthorized响应。

jwt如何利用payload保存数据:

获取token

JWTCreator:

JWTCreator
内部类Builder

一般header中的数据是固定的,属性有alg(加密算法)和type(“jwt”)

可以从上图看到,通过内部类Builder存储payload的claims。通过WithClaim()添加数据。

签名:

构成JWT字符串

获取数据方法:

String username=JWT.decode(token).getClaims().get("username").asString();

JWTDecoder

获取数据:getClaim

getClaims
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容