JAVA 中的 JWT 身份验证。

Posted

技术标签:

【中文标题】JAVA 中的 JWT 身份验证。【英文标题】:JWT Authentication in JAVA . 【发布时间】:2017-04-20 00:41:07 【问题描述】:

我为每个用户登录颁发 JWT 令牌并在每次请求后对其进行验证,但我无法将 jwt 存储到内存中的任何位置。那么如何验证我收到的 JWT 是有效的,并且没有在两者之间进行调整。

【问题讨论】:

你必须为此编写一个验证方法。 是的。我知道我必须使用签名验证收到的标头和有效负载。但我现在无法做到这一点。你能分享一下代码吗?我正在使用 SignatureAlgorithm.HS256;谢谢 【参考方案1】:

这可能会对您有所帮助:

final String secret = "secret used for signing";

try 

    final JWTVerifier verifier = new JWTVerifier(secret);
    final Map<String, Object> claims= verifier.verify(jwt);

 
catch (JWTVerifyException e) 


    // Invalid Token

或者查看这个 repo for java library 来签名和验证 jwt 令牌。

https://github.com/auth0/java-jwt

【讨论】:

这没有帮助。我正在使用“io.jsonwebtoken”。创建我的 JWT。 好的,我想你正在寻找这个github.com/jwtk/jjwt。他也有用于验证 jwt 令牌的示例代码。 这是验证 JWT 令牌的原因,否则会抛出异常。Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);

以上是关于JAVA 中的 JWT 身份验证。的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 身份验证登录时堆栈溢出 [关闭]

为啥验证函数中的令牌参数在 jwt 身份验证中显示错误?

微服务中的 JWT 身份验证

ASP.NET Core 中的 Jwt 令牌身份验证

PyGithub 中的 JWT 令牌身份验证问题

如何在 django rest 框架中验证 jwt 身份验证中的令牌