token认证步骤

●客户端使用用户名和密码请求登陆。
●服务端收到请求,去验证用户名和密码。
●验证成功后,服务端会签发一个Token, 再把这个Token发送给客户端。
●客户端收到Token以后可以把它存储在Cookie本地。
●客户端每次向服务端请求资源时需要携带Cookie中该Token.
●服务端收到请求盾,验证客户端携带的Token, 如果验证成功则返回数据。

jjwt使用

所需依赖

<!-- jwt的依赖 -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>

测试用例

装配

//自定义负载加过期时间
@Test
void testExpAndClaimToken(){
//当前时间 1 分钟后过期
long exp = System.currentTimeMillis() + 1000 * 60;
JwtBuilder builder = Jwts.builder()
.setId("123")
.setSubject("小明")
.setIssuedAt(new Date())
.signWith(SignatureAlgorithm.HS256,SALT)
.setExpiration(new Date(exp))
.claim("name","亚索");//自定义内容
String token = builder.compact();
System.out.println(token);
}

解析

@Test
void parseToken(){
String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIxMTEiLCJzdWIiOiLlsI_mmI4iLCJpYXQiOjE2OTg0NTc1MDJ9.jr4J3XlIZ_AnwhOH8GVxdDSIrzKkWRMlQ6_Maxk2mfI";
Claims claims = Jwts.parser().setSigningKey(SALT)//设置解析的token
.parseClaimsJws(token)//需要解析的token
.getBody();//获取负载部分
//获取负载内容
String id = claims.getId();
String subject = claims.getSubject();
Date issuedAt = claims.getIssuedAt();
String name = (String) claims.get("name");
System.out.printf( "id=%s,subject=%s,issuedAt=%s,name=%s\n",id,subject,issuedAt,name);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值