将 Firebase Google OAuth 身份验证限制为特定用户
Posted
技术标签:
【中文标题】将 Firebase Google OAuth 身份验证限制为特定用户【英文标题】:Limit Firebase Google OAuth Authentication to specific users 【发布时间】:2015-04-09 21:48:48 【问题描述】:我正在使用 Firebase 为我的网站处理我的 Google OAuth 登录。有谁知道如何限制有权访问该应用程序的用户?例如,我只希望 x@gmail.com、y@gmail.com 和 z@gmail.com 能够通过 google 成功登录到我的应用程序。
我不确定这是 Firebase 还是 Google 的问题,但我们将不胜感激。
【问题讨论】:
我不知道我是否错了,但是是否可以在您的数据库上创建 allowed_email_list 并检查输入的电子邮件是否存在,然后只允许登录。 【参考方案1】:Firebase 的身份验证仅处理:通过您启用的任何机制对用户进行身份验证。这些用户是否有权访问您的数据称为授权,并通过 Firebase 的安全规则进行处理。
所以:
身份验证允许用户通过您的应用程序识别他/她自己。请参阅Firebase's documentation on authentication(适用于 javascript/Web,但它适用于所有受支持的平台)。 授权将根据特定用户的身份验证限制对您的数据的读/写访问。见Firebase's documentation on its security rules。将您的数据的访问权限限制为特定的电子邮件地址当然是可能的。我建议您阅读Firebase's documentation on the its security rules 并尝试在此基础上使其工作。如果您有任何问题,请发布您尝试过的内容,我们将能够为您提供更好的帮助。
【讨论】:
【参考方案2】:这些规则将允许任何人登录,但只有列出的电子邮件地址可以读取或写入数据:
"rules":
".read": "auth.email == 'x@gmail.com' ||
auth.email == 'y@gmail.com' ||
auth.email == 'z@gmail.com'",
".write": "auth.email == 'x@gmail.com' ||
auth.email == 'y@gmail.com' ||
auth.email == 'z@gmail.com'"
【讨论】:
酷,但想完全阻止登录。换句话说,他们可以通过谷歌身份验证,但它说你在这个页面上没有被授权,或者其他什么。那会以某种方式使用 .validate 吗?否则,似乎人们可以登录,但他们不能读/写,这没关系,但我宁愿他们根本不登录。 @CodeFinity 参见FrankVanPuffelen's post 关于身份验证与授权之间的区别,Firebase 处理前者以上是关于将 Firebase Google OAuth 身份验证限制为特定用户的主要内容,如果未能解决你的问题,请参考以下文章
Firebase |从Google oAuth中检索高清参数
无法使用cordova在android上获得firebase oauth