2017-05-09 111 views
1

我一直在尋找一種官方的方式來從Angular客戶端創建JWT。有些帖子建議不要這樣做,因爲安全 問題,即使是auth0/jwt-angular2也沒有生成它的功能。如何從Angular客戶端生成JWT?

+0

它沒有任何意義。你爲什麼不解釋你正在解決的原始問題? – zerkms

+0

這就是問題所在,我找不到從角度2生成JWT的官方方式。 –

+1

這不是問題,而是解決方案。在客戶端生成JWT是沒有意義的。你爲什麼需要它? – zerkms

回答

1

的JWT必須在服務器側,一旦用戶被註冊/記錄在。

在此之後,在一個服務器響應所述令牌發送回瀏覽器來創建。最後,您必須將此令牌存儲在瀏覽器本地存儲中以備後續請求。

請記住使用HTTPS,否則任何人都可以使用WireShark輕鬆捕獲令牌。

+1

「你必須開發你的失效令牌算法」 - 你不這樣做,只是讓JWTs自己失效。 「否則任何人」---當然不是「任何人」。 – zerkms

+0

向用戶userExpiryToken添加到期日期:{type:Date,required:false}。然後爲每個請求檢查令牌是否過期。如果已過期 –

+0

jwtSimple.encode(user,jwtConfig.secret);創建令牌。如果您更改了用戶中的任何內容(例如清空過期令牌日期或設置布爾標誌過期),它將更改我們的令牌,因此用戶將無法再次使用該令牌。這是一種簡單的方法來強制用戶更新令牌或讓他或她再次登錄,或通過服務請求新的令牌。看看這個頁面:https://jwt.io。它顯示了令牌如何構建。 –