0

我正在使用 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

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

感谢您的回答

4

2 回答 2

1

这是安全的。别担心。只需以安全的方式存储您的密钥。值得注意的一点是解码后的信息不能改变,或者没有密钥就不能生成令牌。

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

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

检查此主题

于 2017-03-07T14:48:21.417 回答
0

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

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

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

于 2017-03-07T14:44:35.447 回答