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

Firebase认证:如何处理使用不属于自己的邮箱地址的用户?

督翰学
2023-03-14

场景:

>

  • Bob 使用他不拥有的电子邮件地址创建了一个 Firebase 帐户 alice@example.com(无论是意外还是恶意)。

    Bob创建了几条私有Fi恢复记录(例如用户评论/消息),这些记录链接到他的用户ID,只有Bob才能读取和写入。

    Alice尝试注册并发现她的电子邮件alice@example.com已被占用。我们如何给Alice一个链接到她的电子邮件地址的用户帐户,而她却无法访问Bob的Fi恢复记录,也无法访问Bob将继续创建的记录?

    一些想法:

    > < li>

    您可以向Alice发送密码重置电子邮件,注销Bob,但是Alice将会看到Bob在她登录时创建的记录。

    您可以使用Cloud功能,该功能1)删除Bob的(电子邮件未经验证)用户或更改其电子邮件地址2)为Alice创建一个新用户,并设置电子邮件地址验证标志并发送密码重置电子邮件。

    有更简单的方法吗?

  • 共有1个答案

    郎思远
    2023-03-14

    您可以使用一个(或多个!)来帮助确定所有权。

    > < li>

    您可以使用第三方认证(FB、Google、Twitter、Github)来帮助澄清电子邮件地址的所有权。(在我看来,最简单)

    您可以通过< code > firebase . auth(). currentuser . sendemailverification() https://firebase . Google . com/docs/auth/web/passing-state-in-email-actions来验证用户的电子邮件地址。

    你可以使用电子邮件链接注册:https://firebase.google.com/docs/auth/web/email-link-auth

    从他们的文档中:

    通过电子邮件登录有很多好处:

    • 在验证用户是否是电子邮件地址的合法所有者的同时对用户进行身份验证的能力
     类似资料:
    • 问题内容: 我想获取启动程序的计算机的IP地址,然后将其发送到客户端,但是我总是得到0.0.0.1而不是真实的IP地址(例如127.0.0.1)。 我目前可以获取端口,但无法获取IP地址。 我怎么才能得到它? 最好的解决方案是能够使用。这是我目前正在做的事情: 编辑: 我知道我的思维方式走错了路。所以我的问题是:获得自己的IP地址的最佳方法是什么? 问题答案: 当您将套接字设为0.0.0.0时,这

    • 我创建了一个与我的 Flutter 应用配合使用的登录和注册屏幕,使用 Firebase 作为后端身份验证服务。我能够在登录,注册和重置密码屏幕之间切换。 问题 目前,注册屏幕接受输入的任何电子邮件地址,无论它是否真实。例如,如果我键入 gvevg@gverwbgw.com,它将允许用户注册。当涉及到虚假帐户和垃圾邮件等时,这显然是一个问题。 目标 我基本上想能够编辑我的代码,自动生成一个电子邮件

    • 我有自己的服务器设置,所以我不需要Firebase存储和实时数据库服务。从客户端(主要是Android),我试图使用Firebase身份验证服务(G+和FB登录)对用户进行身份验证,但这将在Firebase数据库中创建用户。如何在数据库中创建用户? 目前,我只需将Firebase创建的用户id发送到我的服务器,并将其保存在数据库中,然后生成来验证随后对服务器的REST API请求。

    • 我想在使用Firebase进行身份验证的Flutter应用程序中获取登录用户的电子邮件。 我可以通过以下方式获取当前用户 但是如果我用这个去取信 我得到以下错误: 在这种情况下,如何获取登录用户的电子邮件?

    • 我正在使用Vue,这是我的注册方法,它所做的是注册任何电子邮件ID... 我已在 Firebase 控制台中配置了电子邮件验证。现在,我希望注册方法发送验证邮件,并且只有在用户已验证电子邮件时才注册用户。 我应该如何修改现有代码?我很困惑。

    • 服务器如何使用这些来确保请求是有效的?主要是为什么其他人不能直接从应用程序中提取这些参数,然后创建另一个“邪恶”应用程序,该应用程序对“邪恶”使用相同的参数。 “邪恶”将包括使用从真实应用程序中获取的相同凭据创建一个不同的应用程序,使用普通的电子邮件/密码注册表单根据真实应用程序中包含的相同凭据注册用户,然后一旦用户被注册,就会做更多的“邪恶”。 2)快速检查... 最后,openid-conne