我正在編寫一個nodejs應用程序,我想將它用作Web應用程序以及API提供程序。一旦用戶通過身份驗證,我想爲該用戶分配一個令牌用於後續請求。這對Web應用程序的通行證非常有效,因爲我只是使用會話中的令牌對用戶進行序列化和反序列化。但是,在響應API請求時,沒有設置用於存儲會話信息的Cookie。理想情況下,護照會在會話和請求主體中查找令牌。有什麼辦法可以配置護照來完成這個任務嗎?nodejs護照身份驗證令牌
65
A
回答
124
只需在每個請求上使用訪問令牌。不需要使用會話。以下是工作流程:
POST /signin
- 的用戶名和密碼張貼在客戶端請求。
- 服務器通過使用護照的本地策略對用戶進行身份驗證。見passport-local。
- 如果憑證代表有效用戶,則服務器將返回由某個生成器生成的訪問令牌。 node-jwt-simple是個不錯的選擇。
- 如果憑據無效,請重定向到
/signin
。
當客戶端從授權服務器接收到訪問令牌時,它可以向服務器上的受保護資源發出請求。例如:
GET /api/v1/somefunction?token='abcedf'
- 客戶端調用與令牌參數一些服務器API。
- 服務器通過使用護照的載體策略來驗證令牌。見passport-http-bearer。
參考
Make a secure oauth API with passport.js and express.js (node.js)
7
由於bnuhero提到你不需要會話(雖然這方法有其優點也是如此)。這是我開始的一個鍋爐板項目: https://github.com/roblevintennis/passport-api-tokens
這裏是一個替代和容易遵循tut(但它會使用會話)。可能是一個很好的交叉引用: http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local
還有一參考相關: http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/
相關問題
- 1. 護照身份驗證
- 2. 護照RESTAPI身份驗證
- 3. Laravel 5.4 mongodb護照訪問令牌未經身份驗證
- 4. 保護基於令牌的身份驗證系統的令牌
- 5. CherryPy身份驗證令牌
- 6. Facebook身份驗證令牌
- 7. 身份驗證令牌
- 8. 與身份驗證令牌
- 9. Node.JS驗證Google身份驗證令牌
- 10. Owin身份令牌身份驗證令牌端點響應404
- 11. 使用Facebook策略的護照NodeJS身份驗證
- 12. NodeJS護照未知身份驗證策略
- 13. 身份驗證靜態路徑,表達的NodeJS護照HTML
- 14. NodeJS + Redis + Express +護照Facebook身份驗證失敗
- 15. 護照身份驗證不會通過
- 16. 護照身份驗證 - 任何?
- 17. 護照(本地)掛在身份驗證
- 18. (AngularJS +護照)用戶身份驗證
- 19. 護照JWT&授權與身份驗證
- 20. Facebook身份驗證令牌未能創建Firebase身份驗證
- 21. 沒有護照的Node.js身份驗證:是json web令牌可靠嗎?
- 22. Nodejs - 是否需要解碼身份驗證令牌?
- 23. nodejs身份驗證令牌鏈接到安全頁面
- 24. 在客戶端保護ASP.NET窗體身份驗證令牌?
- 25. php身份驗證令牌+ ios
- 26. REST API中的身份驗證令牌
- 27. Google Plus身份驗證 - Ajax令牌
- 28. Azure Web API的身份驗證令牌
- 29. 驗證訪問令牌 - Asp.Net身份
- 30. 無效Accountmanager身份驗證令牌
謝謝SOOOOO多本。出於某種原因,我認爲OAuth需要比這更復雜。 – SomethingOn
很好的解釋 – Omar
關於令牌生成,有一個永不過期的令牌是安全的嗎?我必須讓令牌過期並生成新的嗎? – sanfilippopablo