繁体   English   中英

Flutter google 登录仅当用户存在于 firebase 时?

[英]Flutter google sign in only when user exist in firebase?

我正在使用两个包进行 firebase 授权:

  1. google_sign_in ^4.5.1
  2. firebase_auth ^0.16.1

当我调用登录方法时

final FirebaseUser user =
        (await _auth.signInWithCredential(credential)).user;

它在 firebase 授权表中创建一个用户。 有没有办法检查具有此社交提供者数据的用户是否存在,如果他不存在则拒绝授权? 我的意思是只有谷歌登录方法。

您可以使用fetchSignInMethodsForEmail方法来确定用于使用凭证中的 email 地址登录的登录方法。 如果其中包含google.com登录方法,则用户之前使用此帐户登录到 Google 提供商。


但请注意,这不会阻止用户自己调用signInWithCredential API。 因此,虽然您可以使用这种方法为用户优化 UI 流程,但您无法阻止恶意用户仍然在您的 Firebase 项目中创建帐户。

这是客户端身份验证的本质所固有的:您不能阻止用户证明他们是谁。 但是,您可以做的是限制他们可以访问的内容。 如果您使用 Firebase 后端服务为您的应用存储数据,这是通过使用 Firebase 的服务器端安全规则来控制用户可以访问的数据来实现的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM