2017-09-18 74 views
1

我正在構建基於Node.js的網站。Node.js網站的用戶身份驗證

,我下面來確保API的安全的方法如下:

  • 用戶跡象了電子郵件地址和密碼
  • 在全成註冊和登錄時,客戶端接收在本地存儲器中隨機生成的令牌
  • 存儲令牌和傳遞令牌作爲在所有後續請求報頭。
  • 對於每個後續請求,服務器檢查令牌並驗證用戶。存儲在客戶端的本地存儲
  • 一旦用戶註銷時,令牌被刪除
  • 的用戶得到一個新的令牌當他再次登錄

上述方法是否足夠好?請建議更好的方法,如果有的話。

另外我也看到有人使用護照本地進行身份驗證。 護照本地如何幫助以上述方式進行身份驗證?

回答

3

這不是一個好方法,因爲很多原因。例如:

  1. 在您的方法中,用戶將無法同時從兩個瀏覽器(Mobile + Desktop)登錄。

  2. 通過XSS攻擊非常容易竊取localStorage數據。如果你只使用服務器Cookie,那就更困難了。

2

取代隨機令牌,最好使用Json Web令牌(https://jwt.io/introduction/)。這將爲您提供簡單的方法來驗證令牌是否有效(令牌已簽名並具有到期時間)。