簡體   English   中英

SPA和node.js服務器的身份驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM