首页 文章

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

提问于
浏览
2

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

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

These two pieces of data, Birthday and City, may not be available in the Google Profile for example.

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

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

  • 用户点击登录

  • 用户决定使用Google通过Firebase或Auth0登录

  • 我可以轻松检索数据库中的用户数据(Firebase)

  • I have to compare some user data is missing (first login or missing user data in the database)

  • If data is missing, how to block the user to make anything before he entered these required data? And redirect/show him only a form to enter these data

关于如何实现这一点的任何简单例子?

1 回答

  • 3

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

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

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

    规则还可用于在身份验证事务完成之前以编程方式重定向用户,允许实现需要代表用户输入的自定义身份验证流,例如:要求用户在从未知位置登录时提供其他验证 . 实现自定义验证机制(例如专有的多因素身份验证提供程序) . 强制用户更改密码 .

    (重点是我的)

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

    根据您所涉及的数据量和/或特定数据存储要求,您可以将收集的数据作为Auth0用户配置文件的一部分存储在所谓的user metadata中,或者使用您自己的商店 .

    Auth0允许您存储元数据或与未来自身份提供者的每个用户相关的数据 . 有两种元数据:user_metadata:存储不影响用户核心功能的用户属性(例如用户首选项); app_metadata:存储可能影响用户核心功能的信息(例如用户的支持计划,安全角色或访问控制组),例如应用程序如何运行或用户可以访问的内容 .

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

相关问题