使用自定义身份验证时如何为firebase编写安全规则?



我正在用django和firebase构建一个应用程序。我已经构建了我的自定义认证系统。我需要安全的规则,这样只有经过我身份验证的人才可以在数据库或存储中读写。

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

这些是我当前的规则,所以当我第一次检查请求(读取或写入数据库)时,它们是传递令牌的一种方式。比如->

{
"rules": {
".write": "isAuthorized == true",
".read": "isAuthorized == true"
}
}

当向数据库发出请求时,如-db.child('test').get(),我传递这个isAuthorized bool

任何帮助都是感激的,或者你可以提出修改建议。

如果您不使用Firebase身份验证,那么您就无法仅根据您的身份验证方法使用安全规则。您必须使用您的方式对用户进行身份验证,授予他们可以使用Admin SDK生成的自定义令牌,然后使用该令牌通过Firebase Auth登录他们。所以从技术上讲,你在使用你的方式来验证用户,但也使用Firebase Auth来登录他们到你的web应用程序。

验证流程如下:

  1. 用户输入凭据
  2. 您的服务器对它们进行身份验证并生成自定义令牌
  3. 令牌返回给客户端,使用signInWithCustomToken()方法登录。

如果你根本不想实现这个,那么唯一可行的方法是通过将安全规则设置为false并通过服务器路由所有请求来禁用直接访问数据库。对于每个请求,检查用户是否被授权手动访问他们请求的资源,并为其提供服务。

最新更新