2017-01-05 127 views
1

對於身份驗證策略是什麼以及它扮演什麼角色似乎沒有真正清晰的解釋。什麼是身份驗證策略

這就是我想這可能是到目前爲止(請糾正我,如果我錯了):

看來,每個登錄類型有一個策略(谷歌,Facebook,地方等)。

該策略已創建,然後添加到護照對象,然後使用護照對象簽署用於(未)指定時間的令牌。但是,用戶名和密碼最初並未通過jwt或護照進行驗證。

+0

Passport.js基於名爲Strategy的設計模式。所以它爲每個給定的案例(谷歌,臉譜等)創建不同的策略(類)。 – Hosar

回答

1

passportjs中的身份驗證策略並不那麼複雜 - 它基本上處理用戶的「身份驗證」。

因此,例如,使用Passport LocalStrategy時,它將採用用戶名/密碼,然後檢查數據庫以查看這些憑據是否有效。

有了Google登錄/ Facebook登錄策略之類的東西,他們只需使用Google登錄API/Facebook登錄API將用戶重定向到Google/Facebook,讓他們接受所需的應用程序權限,然後檢索最終訪問權限來自提供者的令牌。

存在的策略使您可以通過許多不同的方式輕鬆使護照驗證用戶身份。

+0

有幾個問題。如果Facebook創建了令牌,我們的服務器是否將該令牌存儲爲本地令牌?然後根據用戶請求驗證該令牌?那麼,我們的'臉譜'應用程序的祕密將是secretOrKey?如果我們要使用Facebook,Facebook會不會控制到期時間? – user2331566

+0

它看起來從Git上的passport-facebook策略看,所有的策略都會讓你從Facebook回來一個訪問/刷新令牌,然後你必須定義你自己的回調來處理那個點之後的用戶。所以這取決於你寫這個邏輯。 – rdegges

相關問題