Firebase 身份验证 - 防止访问未知用户

Posted

技术标签:

【中文标题】Firebase 身份验证 - 防止访问未知用户【英文标题】:Firebase authentication - prevent access to unknown users 【发布时间】:2019-08-02 17:29:48 【问题描述】:

我在我的 Angular 应用程序上使用了 firebase。 现在,我想做的很简单。

我的应用中有数据,我希望只有某些用户可以访问这些数据,我向这些用户发送了注册链接。

此注册链接将用户带到一个页面,他们可以在其中填写个人信息(姓名、电话号码、出生日期)并选择一种身份验证方式:电子邮件/密码或 Google 登录。

在另一个页面上,我们称之为“登录页面”,他们使用与注册时相同的方式登录。

如果他们选择电子邮件/密码,一切正常,我可以将访问权限限制为只允许之前注册并验证过他们的电子邮件地址的用户。

但在使用谷歌登录时,任何拥有谷歌账户的人都可以访问应用程序上的所有数据,即使他们之前没有注册。

据我所知,这是因为电子邮件/密码验证使用了两个步骤:

createUserWithemailAndPassword(email, password)

这会创建一个新用户

signInWithEmailAndPassword(email, password)

仅在用户完成第一步的情况下对用户进行身份验证。

但对于 Google 身份验证(以及 Twitter 和 Facebook),您只有一个登录方法,没有注册步骤的迹象,您可以在其中过滤哪些人可以访问您的应用。

那么,我是否遗漏了什么,或者这是 firebase 身份验证工作的唯一方式?

非常感谢

马修

【问题讨论】:

【参考方案1】:

添加允许用户登录您的应用的唯一方法是从 Firebase 后端(参见下面的屏幕截图):

因此,您可以选择允许哪个用户访问您的应用。

是的,这有点乏味,但据我所知,没有其他安全的方法可以做到这一点(或者我没有找到)。您甚至可以尝试通过电子邮件或其他方式进行过滤,但它是 JS,因此可以在客户端进行更改。

否则,任何人都可以登录您的应用。

【讨论】:

以上是关于Firebase 身份验证 - 防止访问未知用户的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase 身份验证进行身份验证后检索 Google 访问令牌

使用 google 登录可防止用户使用其他帐户再次登录 - iOS

数据库上的 Firebase 身份验证规则

多个用户的 Firebase 实时数据库身份验证

Firebase 存储身份验证

Firebase 验证码检查失败并阻止用户进行身份验证