我想了解如何OAuth2.0隱式流(與OIDC)與一個非常簡單的SPA /移動客戶端(又名客戶端)和我的REST Api(又名資源服務器)&創建新帳戶。在SPA中使用隱式流程時,我們在哪裏實際創建了數據庫中的帳戶?
我或多或少地瞭解客戶端如何從Auth服務(Auth0/Stormpath/IdentityServer/etc)請求令牌。然後它使用此令牌訪問受限制的API端點。太棒了!
我繼續閱讀但是,所有的例子都是「帳戶」這些驗證服務被創造出來(這是必要的,我有完全KEWL),但我服務(我的資源服務器)上創建什麼。
我需要在我的數據庫中創建一個帳戶,因爲我有我希望存儲的用戶數據/設置(例如他們的訂單等)。當然,我不要想要存儲任何安全信息..因此,這就是爲什麼我使用外部身份驗證服務。
那麼,任何人都可以解釋他們如何使用隱式流和...當一個令牌(或更具體地說,當使用OpenID Connect獲取用戶信息時)被返回時,您會發現用戶是否存在並創建一個如果是新的。
我也很好奇,從驗證服務的角度來看,需要令牌issuer_id + sub
來確定unique
用戶。
最後,你如何防止「新帳戶垃圾郵件/濫用」?我假設您的客戶端(在每個Rest API請求之前檢查本地存儲令牌,因爲我們需要在bearer
標頭中插入一些令牌)......當您決定創建新用戶時。 ..我的REST Api(又名資源服務器)將有一個端點來創建新用戶..就像POST /account/
..那麼如何保護您的服務器免遭垃圾郵件的新隨機POST創建新帳戶? IP +延時限制?
乾杯!
好極了!所以,當我得到令牌時,我需要點擊我們的API來檢查是否需要創建用戶或者只是使用現有的用戶。另外,我可以使用CORS限制(白名單?)來保護該端點。 –