Firebase身份验证,带有“;用户名";作为提供者

Firebase身份验证,带有“;用户名";作为提供者,firebase,firebase-authentication,Firebase,Firebase Authentication,我有一个angular应用程序,它使用Firebase身份验证-电子邮件提供商。按应用程序所需的方式工作 现在,我有一个新客户想要使用该应用程序。唯一的问题是,他并不热衷于将电子邮件地址/手机号码作为登录身份。他想创建自己的用户名供用户登录。用户名将是一个字符串,类似于: 总经理、客户、分公司经理、有要求的客户等 为了应对这种情况,我想到了两种方法 将提供程序更改为customauthprovider,引入jwt并具有后端端点 让用户只输入用户名和后缀,如@abc.com,并模拟emailaut

我有一个angular应用程序,它使用Firebase身份验证-电子邮件提供商。按应用程序所需的方式工作

现在,我有一个新客户想要使用该应用程序。唯一的问题是,他并不热衷于将电子邮件地址/手机号码作为登录身份。他想创建自己的用户名供用户登录。用户名将是一个字符串,类似于:

总经理、客户、分公司经理、有要求的客户等

为了应对这种情况,我想到了两种方法

  • 将提供程序更改为
    customauth
    provider,引入jwt并具有后端端点
  • 让用户只输入用户名和后缀,如
    @abc.com
    ,并模拟
    emailauth
    提供者
  • 以下是我在使用这些方法时遇到的问题

    • 该应用程序完全由firestore及其web SDK提供支持。我需要启动一个新的云函数来创建端点。嗯,不难,但对于一个模块,我们有一个架构上的改变,我不喜欢

    • 不是处理身份验证模块的理想方法。此外,重置密码将不起作用,因为rest链接将发送到user@abc.com这本来就不存在


    是否有任何方法可以使用firebase auth中可用的提供程序(可能是基本的调整),这不会使您的电子邮件/手机成为非强制性的?

    您想要的超出了firebase身份验证的内置提供程序可以配置来处理的范围。您必须创建自己的提供商来支持您的需求

    请记住,Firebase有一些关于如何构建自定义提供程序的好例子,如下所示