[英]OAuth2 with SPA + REST API
可以說我們有用Angular 2編寫的SPA並使用Spring Boot擁有REST API。 兩者都部署在不同的服務器上。 現在,我必須通過Facebook的OAuth2保護此API,但是我不知道哪種授予類型適合我的問題。
我不想成為身份驗證服務器,我不想讓facebook成為我的資源服務器,相反,我自己的REST API應該是一個資源服務器。 從FB,我只想要用戶名或電子郵件或某些標識符。
如果我理解正確,那么我必須使用隱式授權流程,因為它不是Web應用程序,如果我錯了,請糾正我。 “授權碼”授予也可以是一種選擇嗎?
我確實閱讀了幾乎所有與oauth和spring security有關的線程。但是我沒有找到與單獨服務器的SPA和REST API完全相關的任何信息。
與上述問題有關的任何鏈接/資源都應得到贊賞。
在此先感謝您,如果我做錯了事,對不起,這是我的第一篇文章。
您需要實現隱式授予流程https://oauth2.thephpleague.com/authorization-server/implicit-grant/
您需要HTTPS來確保安全。
例:
使用參數將獲取請求發送到oauthserver“授權” URL
一些提供程序需要其他參數,例如“范圍”。
如果一切正常,當您發送請求時。 您將使用網址中的令牌重定向到您的客戶端。
你的申請:
如果成功,您將被重定向到
您現在可以使用javascript檢索令牌值並將其存儲到localStorage,並在將請求發送到restapi( https://myrestapi.com )時將其附加
這是來自auth0.com的示例請求
$.ajax({
cache: false,
url: "http://localhost:7001/api/appointments",
headers: { "Authorization": "Bearer " + ATTACH_YOUR_TOKEN_VALUE_HERE }
});
有關更多詳細信息,請檢查此https://auth0.com/docs/api-auth/tutorials/implicit-grant
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.