我正在使用RESTful API將服務器端Web應用程序轉換爲單頁JavaScript應用程序。目前。用戶可以使用Facebook,Twitter,Google等或通過電子郵件和密碼進行身份驗證。我如何允許通過RESTful API運行相同形式的身份驗證?我猜它看起來是這樣的:使用第三方Oauth提供程序對API的用戶進行身份驗證
- 在客戶端提供商進行身份驗證。
- 從Oauth響應中獲取一些內容並將其傳遞給我的服務器上的API以換取訪問令牌。
- 對後續API調用使用基於令牌的身份驗證。
我在正確的軌道上嗎?如果是這樣的話:
- 是否有一個處理多個提供程序的JS庫,還是每個需要包含類似Facebook的JS SDK之類的東西?
- 我的API應該如何生成令牌?特別是,我需要從Oauth提供商那裏得到什麼,以及如何在服務器上驗證它?
謝謝,這從技術角度來看是有道理的。我是從一個UX-角度思考,希望有一些方法來留在我的單頁的應用程序中,而不會重定向。它看起來像使用自己的Facebook SDK JS是可能的,但可能不會更普遍。 –
您可以通過打開彈出框來避免從您的頁面重定向。您不必從單個頁面重定向到您的登錄REST端點,您可以打開該端點的彈出窗口,並且在該彈出窗口中將重定向到IDP(如Facebook)。在登錄過程結束時,您必須使用登錄響應和會話從彈出窗口向主頁上的JS發出信號。 –
完美!由於我只在一個窗口內工作,所以我沒有想到在彈出窗口和頁面之間進行通信。 –