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

你可能感兴趣的:(jwt学习)