2017-03-07 152 views
0

我與智威湯遜API的工作,我已經產生了使用令牌:JWT被在其網站上輕鬆地解碼

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

它確實undecode並揭示存儲它裏面的所有的信息,我是不是做錯了什麼或它的,因爲它應該是什麼?這似乎並不安全。

感謝答案

回答

0

它在它告訴你的用戶是誰的安全意識,什麼聲稱他們有。您可以通過檢查JWT簽名來驗證用戶的身份和聲明是否有效。

而且,看到這一點:https://stackoverflow.com/a/38459231/2115684

如果你想隱藏的有效載荷,智威湯遜規範允許使用加密(請參見JSON網絡加密 - JWE在RFC)。如果auth0不支持它,你可以在jwt.io中列出很多庫。

0

這是安全的。不要擔心。只需以安全的方式存儲您的密鑰。 值得注意的一點是,解碼後的信息無法更改,或者無法在沒有密鑰的情況下生成令牌。

避免在令牌中存儲重要信息,如信用卡號碼或密碼等。我確定您沒有爲此目的使用智威湯遜。

如果要隱藏有效負載,JWT規範允許使用加密(請參閱Json Web Encryption-JWE at RFC)。如果auth0不支持它,你有很多jwt.io

檢查列出的庫的這個主題