![](/img/trans.png)
[英]Confusion regarding implementation of token based authentication [Node js Express js]
[英]Node Express - Storage and retrieval of authentication tokens
我有一個Express應用程序設置,需要一些有關存儲令牌的建議。
驗證用戶帳戶后,我正在從OAuth 2服務器接收訪問令牌,然后我需要將其用於后續的api請求。
我想向客戶端隱藏令牌值,並且我相信這樣做的一種方法是將令牌保存在服務器上的已編碼cookie中,以便在發出進一步請求時,這些請求可以通過中間件進行路由,然后可以通過cookie用於檢索存儲在服務器端的令牌,然后用作對實際api端點的正在進行的請求中的標頭值。
實際上有人已經問過這個問題- 如何在Angular應用程序中存儲身份驗證令牌這正是我在應用程序中使用的流程,但是答案是關於使用Angular服務的,我不確定我是否願意為此,請確保Express可以全部處理,因此客戶端代碼無需了解令牌,只需知道API服務器返回的任何錯誤即可。
因此,我認為我需要流程摘要:
可能已經有中間件可以處理這種事情,我已經看過PassportJS了,這似乎是我可能要使用的一種東西,但是我不確定它可以處理我正在工作的服務器上的OAuth2令牌流反對(密碼授予),而似乎更適合於重定向登錄OAuth流。
我肯定需要將令牌值保存在Express中的某個地方,以便以某種形式的存儲(我不認為不是在內存中)。
我對Express來說還很陌生,因此希望您對如何解決此問題提供任何建議。
謝謝
最為安全的方法就是您所描述的:
secure
和httpOnly
cookie標志:這確保httpOnly
通過客戶端Javascript代碼或任何非SSL連接讀取cookie。 如果您的服務還需要向Google / Facebook等發出異步請求,而當用戶沒有主動點擊您的網站時,您也應該將其令牌存儲在用戶數據庫中的某個位置,這樣您就可以在在需要時代表用戶。
我是Express-stormpath (Node身份驗證庫)的作者(類似於Passport),這就是我們在那做的事情,以確保最大的安全性!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.