JWT在其网站上轻松解码

时间:2017-03-07 14:38:07

标签: java jwt jjwt

我正在使用JWT api,我使用以下方式生成了令牌:

public void addAuthentication(HttpServletResponse response, String name) {
    // We generate a token now.
    String JWT = Jwts.builder()
            .setSubject(name)
            .signWith(SignatureAlgorithm.HS512, secret)
            .compact();
    response.addHeader(headerString, tokenPrefix + " " + JWT);
}

abd秘密令牌前缀是字符串,但它确实生成令牌,但是当我将其复制到

https://jwt.io/#debugger

它会对它进行解码并显示存储在其中的所有信息,我做错了什么或它应该是什么?这根本不安全。

感谢您的回答

2 个答案:

答案 0 :(得分:1)

这完全是安全的。别担心。只需以安全的方式存储密钥即可。 值得注意的是,如果没有密钥,则无法更改解码信息或无法生成令牌。

避免将基本信息存储在信用卡号或密码等令牌中。我确信您没有为此目的使用JWT。

  

如果要隐藏有效负载,JWT规范允许使用加密(请参阅RFC中的Json Web Encryption-JWE)。如果auth0不支持它,你在jwt.io

中列出了很多库

检查此主题

答案 1 :(得分:0)

它在某种意义上是安全的,它告诉您用户是谁以及他们拥有什么声明。您可以通过检查JWT签名来验证用户的身份和声明是否有效。

另请参阅:https://stackoverflow.com/a/38459231/2115684

  

如果要隐藏有效负载,JWT规范允许使用加密(请参阅RFC中的Json Web Encryption-JWE)。如果auth0不支持它,你在jwt.io

中列出了很多库