使用Angular 2如何在使用Google等外部OAuth提供程序时以及通过Auth0或Firebase处理身份验证时,要求填写强制性配置文件信息。
让我解释一下我的情况:在我的用户档案中,我需要有用户的电子邮件地址,我需要(用于申请),用户给我他的生日和他们工作的城市。
例如,Google个人资料中可能无法使用这两项数据(生日和城市)。
在应用程序中,我们将使用Firebase或Auth0进行身份验证。
所以,我想知道的是如何完成这个场景的这些步骤。
关于如何实现这一目标的任何简单示例?
答案 0 :(得分:3)
对于Auth0场景,您可以通过利用rules functionality来自定义用户的身份验证管道来实现此目的。
规则允许您轻松自定义和扩展Auth0的功能。规则可以链接在一起进行模块化编码,可以单独打开和关闭。
更具体地说,您可以使用redirect based rule来确保用户在原始身份验证方法无法或缺少所述信息的情况下提供必要的附加信息。
在身份验证事务完成之前,规则还可以用于以编程方式重定向用户,允许实现需要代表用户输入的自定义身份验证流程,例如为:
- 要求用户在从未知位置登录时提供其他验证。
- 实施自定义验证机制(例如专有多因素身份验证提供程序)。
- 强制用户更改密码。
(重点是我的)
您的具体情况与提到的第一点非常相似,您将检测到特定情况,在您的情况下,用户没有生日和城市信息可用,并有条件地将用户重定向到将收集此信息的表单提交后将恢复认证过程的信息。
根据所涉及的数据量和/或您可能拥有的特定数据存储要求,您可以将收集的数据存储为Auth0用户配置文件的一部分,其名称为user metadata或使用自己的商店。
Auth0允许您存储元数据或与未来自身份提供商的每个用户相关的数据。有两种元数据:
- user_metadata :存储不影响用户核心功能的用户属性(例如用户首选项);
- app_metadata :存储可能影响用户核心功能的信息(例如用户的支持计划,安全角色或访问控制组),例如应用程序功能或用户可以访问的内容。
有关Auth0元数据存储的用例的指导,请检查User Data Storage Guidance。