如何使用我自己的身份验证服务限制 Firebase 存储访问权限



我在我的应用程序中使用了Firebase存储,并且我正在使用自己的用户名和密码身份验证服务,我已将规则更改为公开,以便我可以上传和下载数据,但现在我给了我这个警告

您的安全规则设置为公开。任何人都可以读取或写入 您的存储桶

如何在不使用任何 Firebase 登录或身份验证方法的情况下保护应用数据?

由于您正在使用自己的服务对用户进行身份验证,因此我可以想到两个选项,都涉及管理员 SDK。

选项 1:创建自定义令牌

假设您通过自己服务器上运行的服务对用户进行身份验证,则可以使用 Firebase 管理员 SDK 稍微修改该系统以包含自定义令牌。基本上,如果用户提供的详细信息与您的服务预期的详细信息匹配,则可以返回一个自定义令牌,Firebase 可以使用该令牌对用户进行身份验证。然后,您可以像往常一样设置 Firebase 安全规则。这是我建议做的。

创建自定义令牌

选项 2:完全限制访问并通过服务器请求/上传数据

您可以将你的安全规则设置为false,以限制所有人的访问。管理 SDK 应忽略这些规则,因为它是一个管理实例。然后,您可以让用户将文件(或下载请求)上传到您的服务器。然后,您的服务器将使用管理员 SDK 从 Firebase 请求文件并将其发送回给用户。

Firebase Admin SDK

仅向授权用户授予读取和写入权限,如下所示,

"rules": {
".read":  "auth != null",
".write": "auth != null",
}
}

现在您不会收到任何警告。

Firebase 规则适用于读取和写入

{
"rules": {
"foo": {
".read": true,
".write": false
}
}
}

您可以将变量读取为 true,以便其他人可以读取数据,但他们可以写入您的数据。 因此您的数据是安全的。 希望你明白了

最新更新