我想了解網絡令牌的概念(JSON網絡令牌是特定的)。然而,我無法找到關於如何在服務器上驗證令牌的任何信息。
A = CLIENT
B = SERVER
流量:
1)A - > B:客戶端發送的用戶名和密碼
2)B:服務器檢查它們對DB記錄,如果它們匹配創建;首先,使用簽名:base64UrlEncode(標題).base64Url(有效載荷),#祕密#然後令牌使用:signature.payload.secret
3)< - B:服務器發送回令牌客戶
4)甲 - > B:客戶端發送請求與令牌來訪問某些網址在頭
5)B:服務器解碼頭和有效負載,使用#祕密#創建另一個數字簽名,並將其與什麼被派去確保完整性
比較
如果上面的流程是正確的,它會引起以下問題:
1)是否有SSL纏繞它?如果不是任何人都可以劫持令牌並將其發送給服務器和用戶模擬客戶端
2)在步驟5中,只檢查完整性,從令牌解密的有效負載數據不會根據數據庫驗證(例如用戶名),如果它被驗證,或者一旦完整性得到確認,我們可以肯定令牌是有效的,應用程序可以授予客戶端訪問權限?
3)是#祕密#只有服務器已知並且僅用於驗證有效負載未被篡改?我會這樣認爲,否則用戶冒充可能會發生。
完美的,謝謝你的確認。 – Pawel