我理解Passport.js的基本策略和摘要驗證之間的區別,但本地策略和基本策略或摘要之間有什麼區別?在這三個中,您輸入用戶名和密碼。基本策略是一種用戶類型&密碼驗證?請澄清。Passportjs中本地基本策略和摘要策略之間有什麼區別
31
A
回答
53
如果我理解正確,Passport.js中Local,Basic和Digest策略之間的差異很微妙但很重要。這裏的破敗:
本地(passport-local)
護照的本地策略是一個簡單的用戶名和密碼認證方案。它從用戶名(或其他標識符)中找到給定用戶的密碼並檢查它們是否匹配。本地策略與其他兩種策略的主要區別在於其使用持久登錄會話。該策略應該通過SSL/TLS使用。
基本(passport-http)
通過護照實施的基本策略看起來幾乎等同於當地的戰略,一個細微的差別。基本策略是與體系結構無狀態的API端點一起使用。因此,會話需要而不是,但可以使用。這個策略也應該使用SSL/TLS。會話標誌可以設置像這樣:
app.get('/private', passport.authenticate('basic', { session: false }), function(req, res) {
res.json(req.user);
});
摘要(passport-http)
摘要策略比,它採用了特殊的挑戰 - 響應範例,以便其他兩個策略稍有不同避免以明文形式發送密碼。當SSL/TLS不可用時,此策略將是一個很好的解決方案。
這是基本與摘要的好文章:How to Authenticate APIs
注:所有三招讓會話支持可選的。這兩個護照HTTP策略允許您設置會話標誌,而護照docs這麼一說,關於護照的當地戰略:
注意,啓用會話支持完全是可選的,但建議對大多數應用。
2
如果您使用Passport本地策略: - 會話已建立,因此您不必爲每個請求發送信用; - 默認情況下,用戶名和密碼在「用戶名」和「密碼」標題中提供;
如果您使用Passport基本/摘要策略: - 未使用會話,因此您必須在每次API調用時提供憑據; - 用戶名和密碼/哈希包含在「授權」標題中;
相關問題
- 1. passportjs本地策略沒有被調用
- 2. Passportjs本地策略未運行
- 3. nodejs,passportjs本地策略未運行
- 4. PassportJS本地策略不工作Withh MongoDB
- 5. 在hapi.js認證方案和策略之間有什麼區別?
- 6. passportjs google oauth2策略
- 7. Laravel:路由中間件和策略之間的區別
- 8. 如何配置Passportjs策略?
- 9. Windows本地安全策略
- 10. 價值迭代和策略迭代有什麼區別?
- 11. 遺傳算法和進化策略有什麼區別?
- 12. 策略和工廠設計模式有什麼區別?
- 13. 訪客和策略模式有什麼區別?
- 14. passportjs本地策略不能獲得路線
- 15. Passportjs本地策略缺少憑據錯誤消息
- 16. CfEngine策略錯誤,未採取本地策略的客戶端
- 17. 分區策略
- 18. kubernetes重啓策略的始終和失敗之間的區別是什麼?
- 19. 請求頭緩存策略和響應頭之間的區別
- 20. 模板方法(分離)和策略模式之間的區別?
- 21. 腳本本地安全策略
- 22. UIWebView中的本地HTML緩存策略
- 23. 使用mongodb和nodejs對Passportjs中的多個本地策略進行授權
- 24. 這兩種繼承策略有什麼區別?
- 25. AngularJS get passportjs策略失敗消息
- 26. FB登錄策略,要堅持什麼?
- 27. 什麼是上游首要策略
- 28. STL實現之間分配策略的區別?
- 29. 什麼是提取策略?
- 30. 閱讀本地安全策略
「基本策略是與架構無狀態的API端點一起使用」 - 您是指無狀態的含義?你能舉一些例子嗎?如果我理解正確,本地策略就是「如果您已經在支持用戶會話,例如爲每個會話保存臨時變量,那麼cookie已經識別了會話,並且每次都發送用戶名和密碼毫無意義」。 – Oren
基本策略使用'authentication'標頭進行驗證,請參閱https://github.com/jaredhanson/passport-http/blob/master/lib/passport-http/strategies/basic.js#L68 – Vadim
@Vadim謝謝! ! ü拯救我的生命:) –