14
我正在開發一個關於MEAN棧(MongoDB,Express,AngularJS和node.js)的web應用程序。我正在開發一個登錄系統,並且還會保護一些Angular路由,以便只有登錄用戶才能訪問它們。我正在想辦法解決這個問題的最佳方式。MEAN棧上登錄系統的體系結構?
我想目前的工作流程:
- 用戶通過AngularJS形式,它發送一個HTTP POST到Express端點登錄英寸端點根據數據庫驗證用戶,並使用OAuth令牌和Cookie進行響應。兩者都存儲在mongo數據庫中供以後驗證。
- 一旦AngularJS收到登錄響應,它將使用ng-cookies存儲收到的cookie,並將OAuth令牌存儲在用戶服務中。
- 現在,每當AngularJS中的路由發生變化時,User服務就會被用來確保cookie通過與mongo數據庫中的cookie進行比較來保持合法(這將是使用Angular解析的API調用)創建明顯的延遲?)
- 當用戶單擊「註銷」或Cookie過期時,Cookie和OAuth令牌都將從數據庫中刪除,並且不再有效。
這種方法有意義嗎?它是否安全,並且執行起來是否相對有效/快速?
有意義的是,您也可以使用會話,所以每次更改路由時都不檢查數據庫。 – tymeJV
會話是否由Express管理?然後在路線上的變化,我仍然會進行API調用,但它不會檢查數據庫? – Jakemmarsh
是的,'req.session' - 檢查這個帖子:http:// stackoverflow。com/questions/14218725/working-with-sessions-in-express-js - 或者您可以結帳HTML5'sessionStorage' – tymeJV