Flutter 是否有一种方法可以仅使用现有帐户授权用户?

Flutter 是否有一种方法可以仅使用现有帐户授权用户?,flutter,firebase-authentication,google-signin,Flutter,Firebase Authentication,Google Signin,我正在开发一个Flatter移动应用程序,我在其中使用Google SignIn for Auth,有没有办法只使用现有帐户授权用户?防止用户创建新帐户?我一直在寻找同样的东西,但没有找到一种方法来在任何Firebase项目设置中实现这一点 我认为,解决方案是考虑认证和授权之间的区别。Firebase的身份验证服务的名称恰当。它进行身份验证 -验证用户是否就是他们声称的用户。它不进行授权—控制经过身份验证的用户可以执行哪些操作,或者他们可以在应用程序中访问哪些数据。应用程序开发人员必须负责管理用

我正在开发一个Flatter移动应用程序,我在其中使用Google SignIn for Auth,有没有办法只使用现有帐户授权用户?

防止用户创建新帐户?我一直在寻找同样的东西,但没有找到一种方法来在任何Firebase项目设置中实现这一点

我认为,解决方案是考虑认证和授权之间的区别。Firebase的身份验证服务的名称恰当。它进行身份验证 -验证用户是否就是他们声称的用户。它不进行授权—控制经过身份验证的用户可以执行哪些操作,或者他们可以在应用程序中访问哪些数据。应用程序开发人员必须负责管理用户授权

例如,一种方法是在Firestore中维护一个“授权用户”集合。当用户进行身份验证时,您的应用程序将执行查找,以查看当前用户是否实际获得授权。可以为Firestore和Firebase云存储编写安全规则,以在允许访问数据之前验证当前用户是否在“授权用户”集合中。但这需要额外的数据查询来获取此授权信息

我更喜欢的授权方法是使用可使用Firebase管理库分配的自定义声明。可以将自定义声明添加到现有用户帐户,该帐户可以用作指示授予他们的授权类型的标志。前端代码可以检查为自定义声明颁发的身份验证令牌,以确定授予他们的授权。服务器端代码和安全规则还可以检查提交的请求中所需的自定义声明

实际上,在您构建的任何应用程序中,不同的用户可能具有不同的访问级别,这都需要您处理授权。我相信,仔细考虑定制索赔是最好的解决方案