当前位置: 首页 > 知识库问答 >
问题:

用户名认证而不是电子邮件

解念
2023-03-14

使用Firebase,我可以使用电子邮件地址注册和登录用户。但是,如果我希望应用程序基于用户名怎么办?例如,您使用“Bobzilla”而不是“Bob@mail.com”登录?

Firebase是否可以这样做?

共有3个答案

霍弘厚
2023-03-14

您可以使用firebase自定义身份验证。自定义身份验证是一种用户可以使用自定义令牌登录应用程序的方法。

但是,您需要后端代码,以便在用户向该后端发送用户名和密码时创建自定义令牌。

幸运的是,现在有Firebase云功能,带有超文本传输协议事件,可以轻松解决您的问题。步骤是:

>

  • 用户通过查询参数(GET)或请求正文(POST)将用户名和密码发送到云函数url

    云功能将检查用户名和密码是否有效(例如:来自实时数据库

    如果用户名和密码有效,云函数将使用userId创建自定义令牌(您需要保存userId)。然后发送给响应机构

    然后客户端可以使用该自定义令牌登录

  • 陈允晨
    2023-03-14

    与其使用为用户分配电子邮件地址的方法,不如在数据库中查找电子邮件地址。

    一个例子是:

    1. 提示用户名使用用户名和密码登录
    2. 验证数据库中存在用户名并检索该帐户的相应电子邮件地址
    3. 将此电子邮件地址无缝传递给登录过程
    张宝
    2023-03-14

    Firebase身份验证中没有内置的默认用户名密码提供程序。但您可以使用Firebase文档中的说明创建自己的自定义身份提供程序。这需要在受信任的环境中运行的代码,您可以为Firebase使用自己的服务器或云功能。现在,函数示例repo中甚至有一个这样的例子。

    或者:您可以使用内置的电子邮件密码提供程序,只需在用户名后面添加任何域。因此,一旦确定了用户名,请使用

    请注意,如果用户忘记密码,这将使其无法重置密码,因为Firebase使用电子邮件地址发送密码重置电子邮件。

     类似资料:
    • 我有一个使用Spring Security的应用程序。在成功注册后,我试图获取用户的姓名,但当我进入登录页面时,我收到的是电子邮件而不是姓名。成功登录后,我提供了一个屏幕截图。 在上图中,我想要名字,而不是电子邮件地址。 我在给你上课,我认为这最重要。 控制器类 安全配置类 LOGIN.HTML 应用程序用户类

    • 我想将Firebase用于我的网络应用程序,该应用程序适用于养老院中的痴呆症患者。他们没有电子邮件或社交网络帐户,因此需要简单的用户名/密码注册/登录。 最简单的方法是什么?从我在文档中看到的情况来看,我必须使用自定义的身份验证流,但我没有现有的身份验证服务器。 如果我确实需要这样做,那么提供代币的最简单方法是什么?Azure中有函数,AWS有Lambda,但我看这里没有Firebase

    • 主要内容:创建用户,登录,注销在本章中,我们将向您介绍如何使用Firebase电子邮件/密码身份验证。在开始之前,需要设置登录方法,参考以下图所示 - 点击设置登录方法,然后选择电子邮件地址/密码,打开启用并保存,如下图所示 - 创建用户 要验证用户,可以使用方法。 示例 让我们来看看下面的一个例子。参考代码 - 接下来,您可以检查Firebase仪表板中的数据库,并查看用户是否已创建成功。如下所示,已经创建了一个用户账号 -

    • 问题内容: 现在,我已经建立了一个PHP电子邮件表单,并且一切正常。但是,在测试时,我只得到了发件人的电子邮件地址作为名称。我想要的是发件人的姓名,例如: 约翰·杜 科目科目科目 代替: j.doe@website.com 科目科目科目 下面是代码… 有谁可以帮助我吗?谢谢。 PHP: 问题答案: 在您的4行说完之后添加一行:

    • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。

    • 正如标题中所说,无论我如何尝试登录,< code>emailVerified字段总是为假。这是故意的吗?到目前为止,我已经通读了整个firebase文档,似乎找不到任何关于这方面的信息。只是为了确保:我已经尝试了4个不同的验证帐户,结果总是一样的。知道是什么导致了这种行为吗?