我想在我的應用程序上實現Facebook身份驗證。我注意到我的API後端 - Loopback已集成passport。我不明白這會是什麼目的?爲什麼後端需要第三方認證?
從我所瞭解的認證發生在客戶端。 FB發佈的令牌應該傳遞給後端,以生成一個會話cookie /令牌來與我的應用程序的API交談。所以後端只應驗證FB用戶令牌,而不是實際驗證用戶。
我想在我的應用程序上實現Facebook身份驗證。我注意到我的API後端 - Loopback已集成passport。我不明白這會是什麼目的?爲什麼後端需要第三方認證?
從我所瞭解的認證發生在客戶端。 FB發佈的令牌應該傳遞給後端,以生成一個會話cookie /令牌來與我的應用程序的API交談。所以後端只應驗證FB用戶令牌,而不是實際驗證用戶。
我已成功使用護照來實現FB驗證我的應用程序,並擁有比前兩天有了更好的瞭解。
我的假設下,由於用戶在某一時刻認證對客戶端發生在輸入用戶名和密碼。
服務器仍然有可能處理該過程。代替客戶端與FB或其他提供商通信的應用標識和訪問令牌,服務器可以代表他們這樣做。
相反,用戶看到其客戶端身份驗證過程中發生的服務器將用戶重定向至Facebook(或其他提供商)和通信應用程序ID和祕密彈出窗口。登錄成功後,facebook會將可以直接交換給access_token的授權碼直接傳遞給應用服務器,並將用戶重定向回另一個URL。
Passport使上述過程易於實現。
對我來說這方法似乎更加安全,因爲用戶不會看到您的應用程序ID或自己的FB的access_token。此外,通過服務器方法而不是客戶端(60天vs幾個小時)發佈該令牌時,該令牌的有效性會更長。
Passport給出了使用一個用戶名和密碼了一套全面策略支持的認證。當你管理多個社交網絡登錄時,這肯定會派上用場。
回送的功能是什麼,它會創建UserIdendity
模型並將其與UserModel
連接,從而創建User
(如果他/她不存在)。
我的看法是服務器端驗證比客戶端更可靠。大多數社交網絡推薦服務器端驗證
我知道Passport可以很容易地整合多個社交登錄,但我不明白它在後端做什麼。由於用戶直接在fb(例如)域上輸入用戶密碼,所以認證必須發生在客戶端。我不瞭解後端的第三方身份驗證。 – charsi
請先參考http://passportjs.org/docs。 – itssajan