广告推广网站,比较优秀的国外wordpress网站,城阳网站开发公司电话,石家庄百度推广开户写在前面#xff1a;各位看到此博客的小伙伴#xff0c;如有不对的地方请及时通过私信我或者评论此博客的方式指出#xff0c;以免误人子弟。多谢#xff01;如果我的博客对你有帮助#xff0c;欢迎进行评论✏️✏️、点赞#x1f44d;#x1f44d;、收藏⭐️⭐️#…写在前面各位看到此博客的小伙伴如有不对的地方请及时通过私信我或者评论此博客的方式指出以免误人子弟。多谢如果我的博客对你有帮助欢迎进行评论✏️✏️、点赞、收藏⭐️⭐️满足一下我的虚荣心 。
上一篇记录了使用jwt令牌和自定义token携带的信息本篇继续完善一下令牌的解析和使用refresh_token获取令牌本篇代码基于上一篇使用Spring Security OAuth2使用JWT生成token及自定义token携带的信息(十)
目录
Java解析JWT内容
pom依赖
测试类
Postman测试
刷新令牌
环境
Postman测试 Java解析JWT内容
这里我们使用jjwt的工具包解析JWT的内容。
pom依赖
dependencygroupIdio.jsonwebtoken/groupIdartifactIdjjwt/artifactIdversion0.9.0/version
/dependency
测试类
GetMapping(value /jwt)
public Object jwt(HttpServletRequest request) {String authorization request.getHeader(Authorization);return Jwts.parser().setSigningKey(abc123.getBytes(StandardCharsets.UTF_8)).parseClaimsJws(authorization).getBody();
}
Postman测试
启动我们之前的认证服务和测试服务。
首先获取token如下 localhost:9005/oauth/token?client_iddev-clientclient_secret123456grant_typepasswordusernamezhangsanpassword123456 结果如下 然后我们访问JWT解析测试方法 http://localhost:9000/jwt如下 结果如下 如上已经JWT的内容已经解析出来了。
刷新令牌
下面演示一下token失效时使用refresh_toekn重新获取token的过程。
环境
我们的客户端信息是保存在数据库的要想支持刷新令牌注意oauth_client_details表中authorized_grant_types要包含refresh_token另外之前令牌的有效期和刷新令牌的有效期是配置在令牌服务中的如下
tokenServices.setAccessTokenValiditySeconds(60);
tokenServices.setRefreshTokenValiditySeconds(3600);
这里咱们配置在数据库oauth_client_details表中后续客户端信息会做一个管理功能来维护这些信息为了演示这里还将令牌有效期设置为30秒刷新令牌的有效期设置为3600秒如下 Postman测试
使用上面的token再次访问 访问JWT解析测试方法 http://localhost:9000/jwt结果如下 后台报错信息如下 io.jsonwebtoken.ExpiredJwtException: JWT expired at 2023-03-09T09:56:55Z. Current time: 2023-03-09T10:08:47Z, a difference of 712101 milliseconds. Allowed clock skew: 0 milliseconds. 如上JWT expired,使用refresh_token重新获取token如下 结果如下 使用新获取的access_token再次访问 JWT解析测试方法 http://localhost:9000/jwt就可以在再次访问了。