如何在首次登录时要求并存储其他用户个人资料数据?

时间:2016-11-28 16:31:31

标签: angular firebase oauth auth0

使用Angular 2如何在使用Google等外部OAuth提供程序时以及通过Auth0或Firebase处理身份验证时,要求填写强制性配置文件信息。

让我解释一下我的情况:在我的用户档案中,我需要有用户的电子邮件地址,我需要(用于申请),用户给我他的生日和他们工作的城市。

例如,Google个人资料中可能无法使用这两项数据(生日和城市)。

在应用程序中,我们将使用Firebase或Auth0进行身份验证。

所以,我想知道的是如何完成这个场景的这些步骤。

  1. 用户点击登录
  2. 用户决定使用Google通过Firebase或Auth0
  3. 登录
  4. 我可以轻松检索数据库中的用户数据(Firebase)
  5. 我必须比较一些用户数据丢失(首次登录或数据库中缺少用户数据)
  6. 如果缺少数据,如何阻止用户在输入这些所需数据之前做出任何事情?并重定向/仅向他显示输入这些数据的表单
  7. 关于如何实现这一目标的任何简单示例?

1 个答案:

答案 0 :(得分:3)

对于Auth0场景,您可以通过利用rules functionality来自定义用户的身份验证管道来实现此目的。

  

规则允许您轻松自定义和扩展Auth0的功能。规则可以链接在一起进行模块化编码,可以单独打开和关闭。

更具体地说,您可以使用redirect based rule来确保用户在原始身份验证方法无法或缺少所述信息的情况下提供必要的附加信息。

  

在身份验证事务完成之前,规则还可以用于以编程方式重定向用户允许实现需要代表用户输入的自定义身份验证流程,例如为:

     
      
  • 要求用户在从未知位置登录时提供其他验证。
  •   
  • 实施自定义验证机制(例如专有多因素身份验证提供程序)。
  •   
  • 强制用户更改密码。
  •   

(重点是我的)

您的具体情况与提到的第一点非常相似,您将检测到特定情况,在您的情况下,用户没有生日和城市信息可用,并有条件地将用户重定向到将收集此信息的表单提交后将恢复认证过程的信息。

根据所涉及的数据量和/或您可能拥有的特定数据存储要求,您可以将收集的数据存储为Auth0用户配置文件的一部分,其名称为user metadata或使用自己的商店。

  

Auth0允许您存储元数据或与未来自身份提供商的每个用户相关的数据。有两种元数据:

     
      
  • user_metadata :存储不影响用户核心功能的用户属性(例如用户首选项);
  •   
  • app_metadata :存储可能影响用户核心功能的信息(例如用户的支持计划,安全角色或访问控制组),例如应用程序功能或用户可以访问的内容。
  •   

有关Auth0元数据存储的用例的指导,请检查User Data Storage Guidance