我正在使用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秘密令牌前缀是字符串,但它确实生成令牌,但是当我将其复制到
时它会对它进行解码并显示存储在其中的所有信息,我做错了什么或它应该是什么?这根本不安全。
感谢您的回答
答案 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
中列出了很多库