2017-08-27 58 views
1

頭(灰色),有效載荷(紅色),簽名(淺綠色)爲什麼JWT授權需要有效載荷部分?

enter image description here

這是關於認證協議的問題。服務器端有下面的密鑰,這意味着它可以通過解密簽名來識別客戶端是誰。所以下面的負載不需要暴露在http數據包中。

或者,如果在服務器端有每個用戶的祕密密鑰,則需要有效載荷。但是對於這種情況,服務器必須爲每個用戶存儲每個密鑰,這意味着這不是「無狀態」協議的情況。但是,我聽說JWT授權是「無狀態的」。

回答

0

服務器端對每個用戶的每個JWT令牌沒有跟蹤,而是當用戶發送帶有JWT令牌的請求時,它將作爲authentication:"the JWT token go here"添加到頭中。

然後,服務器接收到這個請求,它看起來在認證頭部內部,並用只有服務器知道的祕密密鑰對該令牌進行解碼,一旦令牌被解碼,服務器就會查看令牌內部的數據是否可以用戶標識或其他內容,並查看用戶標識是否有效。

+0

是的。祕密密鑰只有一個,祕密存放在服務器端,如果沒有有效載荷,服務器無法檢查令牌是否僞造。對? –

+0

如果頭沒有授權令牌,那麼服務器丟棄有效載荷併發送一個'錯誤:你必須提供一個授權頭' –

+0

然後,我想知道每個令牌的標頭值是否總是相同用戶爲每個JWT令牌。我指的是圖片中的標題,而不是像您一般的http標題。 –