[英]Authentication for a SPA and a node.js server
我有一個基於express的非常簡單的node.js應用,該應用一直在使用會話內存存儲來處理身份驗證。 基本上,用戶通過以下方式登錄:
app.post('/sessions', function(req, res) {
// check username/password and if valid set authenticated to true
if (authenticated){
req.session.user = req.body.username;
} ...
});
然后,在每次來自瀏覽器的調用中,都會調用requireLogin中間件函數,該函數檢查是否已設置會話上的該用戶屬性。
我現在正在過渡該應用程序,使其基本上僅提供一種可能在瀏覽器中使用或可能不使用的服務,因此,我正在考慮更改系統,而不是使用cookie /會話,以便將其發布到/ getToken(而不是/ sessions),它將返回與用戶帳戶相關聯的臨時隨機令牌,然后可以在一段時間內使用該令牌來訪問服務。 然后,使用該服務將需要在每個呼叫中包含有效令牌。 (我認為這樣做比每次都傳遞用戶名/密碼更好,這樣在調用令牌后不必將密碼存儲在客戶端計算機的內存中?)
這樣的系統是否基本上與上述當前系統一樣安全?或者是否有更多標准/安全的方法來處理此問題? 處理這種事情的標准方法是什么?
預先感謝您的幫助!
您正在尋找的被稱為HMAC,這里有一篇很棒的文章,以獲取有關如何為您的服務實施的想法。
關於基於會話的安全性是否比公共/私有密鑰對更安全的爭論一直在爭論,這實際上取決於實現/應用程序。 在您的情況下,由於您希望在面向公共的API上進行每請求身份驗證,因此HMAC是必經之路。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.