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

Angular Firebase身份验证-防止访问未知用户,angular,firebase,firebase-authentication,Angular,Firebase,Firebase Authentication,我在angular应用程序上使用firebase。 现在,我想做的很简单 我的应用程序中有数据,我只希望某些用户可以访问这些数据,我向他们发送了注册链接 此注册链接将用户发送到一个页面,用户可以在该页面中填写个人信息(姓名、电话号码、生日),并选择身份验证方式:电子邮件/密码或谷歌登录 在另一个页面上,我们称之为“登录页面”,他们使用注册时使用的相同方式登录 如果他们选择了电子邮件/密码,一切正常,我可以将访问权限限制为以前注册并验证其电子邮件地址的用户 但当使用谷歌登录时,任何拥有谷歌账户的人

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

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

此注册链接将用户发送到一个页面,用户可以在该页面中填写个人信息(姓名、电话号码、生日),并选择身份验证方式:电子邮件/密码或谷歌登录

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

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

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

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

createUserWithemailAndPassword(email, password)
这将创建一个新用户

signInWithEmailAndPassword(email, password)
只有用户完成了第一步,才能对其进行身份验证

但对于谷歌认证(以及Twitter和Facebook),你只有一个登录方法,没有注册步骤的迹象,你可以过滤哪个人可以访问你的应用

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

非常感谢


Matthieu

添加允许用户登录应用程序的唯一方法是从Firebase后端(c.f.下面的屏幕截图):

因此,您将能够选择授予哪个用户访问您的应用程序

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


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

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

因此,您将能够选择授予哪个用户访问您的应用程序

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

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