我有一个React Redux Firebase应用程序,其中包含内容管理方面的功能(所有这些页面都以
根据我所了解的,似乎可以通过自定义令牌来实现此目的,但我不清楚将提供的代码片段放在哪里才能确保安全。我尝试手动在Firebase数据库中添加
/admin/...
开头)。我需要将Firebase数据库和Firebase存储写入访问权限限制在少量用户之内,并在未经身份验证(或已经过身份验证但没有管理员角色)的用户尝试进入时处理重定向。目前,任何人只要发现认证按钮位于/admin
就可以使用Facebook或Google登录,然后获得访问权限。根据我所了解的,似乎可以通过自定义令牌来实现此目的,但我不清楚将提供的代码片段放在哪里才能确保安全。我尝试手动在Firebase数据库中添加
admin:true
,然后像下面这样设置我的Firebase数据库规则:{
"rules": {
".read": "true",
".write": "auth != null && root.child('users').child(auth.uid).child('admin').val() == true"
}
}
这种方法可以保护数据库的写入访问,但是我无法使用相同的管理员字段/令牌来控制Firebase存储,所以我不得不这样做:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth!=null && request.auth.uid=="{my uid}";
//request.auth.token.admin==true did not seem to work
}
}
}
我也无法在客户端上显示admin: true
,因此目前没有重定向的方法。
请问有人能为我解决这个问题吗?