2016-04-30 31 views
1

我遇到問題了解如何爲我的項目正確使用JWT。在Angular/Golang項目中使用JWT

情況是這樣的:

我有一個網站,人們可以通過抽搐,給了我一個OAuth令牌,其用戶名和取決於我要求更多的東西登錄。 (這是什麼認證過程看起來像https://github.com/justintv/Twitch-API/blob/master/authentication.md

在我的數據庫中我有幾個用戶名具有訪問級別。例如,級別500意味着他們可以在我的網站上看到管理控制檯,或者他們可以從角度發送POST請求來更改數據。

我的角度應用程序顯然沒有訪問數據庫。我只想通過我的web服務器提供的API進行通信。

我想知道的是如何確保試圖發送安全POST或GET的用戶實際上是他所說的他並且有權執行他正在執行的命令的用戶。

回答

2

JWT由3部分組成:頭部(用於「元數據」就像使用的加密算法等),claimes(它是存儲在令牌中的實際數據)和HMAC(用於驗證以上兩部分沒有被篡改)。

在你的情況下,當你用戶登錄時,你應該收到oauth標記,他們的用戶名等。然後你可以使用用戶名來獲得關聯的用戶級別,並將所有的東西放入你自己的JWT的聲明中將發回給用戶。在隨後的請求中,您只需檢查該令牌是否有效(不要忘記給他們一個短的ttl),然後您確定執行請求的用戶是它要求的那個用戶(它是(mnemotechnic雙關語的)聲稱的意)。

相關問題