2016-11-28 42 views
2

使用角2如何詢問強制配置文件信息以使用外部OAuth的提供商如谷歌和與認證通過Auth0或火力地堡被處理時被填充。如何在首次登錄時要求並存儲其他用戶個人資料數據?

讓我解釋一下我的情況:我的用戶配置文件,我需要的用戶的電子郵件地址,我需要(申請的目的),用戶給我他的生日,他們在工作的城市

數據,生日和市的這兩塊可能不會在谷歌個人資料,例如可用。

在我們將要使用火力地堡或Auth0進行身份驗證的應用程序。

所以,我想知道是怎麼可能完成這些步驟的場景。在登錄

  1. 用戶點擊
  2. 用戶決定使用谷歌通過火力地堡或Auth0
  3. 登陸我可以在數據庫中檢索容易的用戶數據(火力地堡)
  4. 我要比較某些用戶數據丟失(在數據庫中第一次登錄或丟失用戶數據)
  5. 如果數據丟失,如何阻止用戶做任何事情,他進入這所需要的數據之前?並重定向/只給他一個表格輸入這些數據

任何簡單的例子,我怎麼能實現這一目標?

+1

您可以使用[resolver](https://angular.io/docs/ts/latest/api/router/index/Resolve-interface.html)來檢查根路由。在此解析器中,您可以檢查用戶是否已登錄,並且是否填寫了所有必需的字段。如果他們不是,你可以重定向用戶到你的個人資料表格。這將有效地阻止用戶使用您的應用程序,直到字段填滿並且解析器很快樂。 – dotcs

回答

3

對於Auth0情況下,您可以通過利用rules functionality定製用戶的身份驗證管道做到這一點。

規則允許您通過輕鬆定製和擴展Auth0的功能。規則可以鏈接在一起進行模塊化編碼,可以單獨打開和關閉。

更具體地說,您可以使用redirect based rule來確保用戶在原始認證方法無法或缺少所述信息的情況下提供必要的附加信息。

規則也用於以編程方式將用戶重定向之前的認證事務完成,允許需要代表用戶的輸入自定義的認證流,例如執行:

  • 要求用戶在從未知位置登錄時提供額外的驗證。
  • 實現自定義驗證機制(例如專有多因素身份驗證提供程序)。
  • 強制用戶更改密碼。

(重點是我的)

你的具體情況是非常相似,所提到的第一點,你會發現一個特定的情況下,在你的情況下,用戶不必生日和城市信息可用,並有條件地將用戶重定向到將收集此信息的表單,然後在提交後恢復認證過程。

根據有問題的數據量和/或特定的數據存儲需求,您可能需要將收集的數據作爲Auth0用戶配置文件的一部分存儲在user metadata或使用您自己的商店中。

Auth0允許你存儲元數據,或與已不是來自身份提供每個用戶的數據。有兩種類型的元數據:

  • user_metadata:保存不影響用戶的核心功能的用戶屬性(例如用戶偏好);
  • app_metadata:存儲可能影響用戶核心功能的信息(如用戶的支持計劃,安全角色或訪問控制組),例如應用程序的功能或用戶可以訪問的內容。

有關哪些使用案例Auth0元數據存儲的指導還要檢查User Data Storage Guidance

+0

感謝您的回答。然後在Auth0中,將如何存儲這些附加信息? – BlackHoleGalaxy

+0

更新了答案。 –

+0

感謝您的更新。這就是我要找的。關於auth0的側面問題:我在示例使用代碼中看到,我們必須在auth.service.ts文件(例如)中存儲'Auth0Lock('auth0_app_key','app_domain',{});'。每個人都可以安全地看到它,因爲它會被捆綁在一起,但在ng2中可見嗎?我的鑰匙不能被盜用,並且使用方式不好? 對不起,這個問題我在auth過程中很新穎,JWT的東西等等。 – BlackHoleGalaxy

相關問題