2012-10-11 72 views
6

更多關於實現基於令牌的身份驗證系統的一些提議的一般性指出缺陷問題,由於Node.js似乎沒有現成的東西。因爲我們想要構建一個用於操縱數據存儲的無狀態API服務器,我們希望爲用戶提供一個auth令牌(一個'乘車票'),這個令牌將包含在API的每次調用中。基於令牌的身份驗證(在Node.js中)

問題是如何以安全的方式生成此令牌。

[點子1] - 用戶通過發送(用戶ID,密碼哈希)到服務器 請求一個身份驗證令牌 - 服務器 - 服務器(USER_ID,EXPIRY_DATE),由API服務器隨機密鑰 簽署響應可以檢查每個請求 令牌的有效性 - 服務器將需要存儲的令牌的時間

[想法2] 一段有限的時間 - 同上,但避免密碼散列 的發送 - 用戶請求的身份驗證令牌 - 服務器向用戶發送挑戰,然後用戶使用他的(user_id,password_hash)對 - 服務器驗證這一點,然後生成令牌按照想法1.

[想法3] - 使用密碼哈希本身作爲身份驗證令牌,在每一個請求中發送,避免了令牌管理問題 - 簡單,但那麼沒有時間有限性

[主意4] - 同2,但challenged_hashed_by_(USER_ID,password_hash)成爲令牌和在每次請求發送

感謝任何指針

+0

看看這個:http://stackoverflow.com/questions/11187342/mongoose-express-authorisation-on-http-verbs – freakish

回答

0

你可以在Passport上使用OAuth 2.0。 Passport本身就是一個很好的例子,它是如何使用它的,它是保護無狀態API的一個適當的解決方案,不需要在每個請求上發送用戶密碼。

相關問題