问题描述
我为 firebase 实时数据库设置了这些规则
{
"rules": {
"adminContent": {
".read": true,".write": "auth.token.admin === true",}
}
}
我已经创建了一个用户并且可以登录 关注这个网址 https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]
{
"email":"MY EMAIL","password":"MYPASSWORD","returnSecuretoken":true
}
我得到了 idToken 和所有数据。 我在参数中输入: auth | “收到 ID 令牌”
我还在接受
{
"error": "Permission denied"
}
我实际上需要在 React 项目中使用它,但是我在 Postman 中测试了一些东西,我不明白它是如何工作的。
我必须遵守这些规则。
感谢您的帮助。
解决方法
您的安全规则要求用户是管理员:
auth.token.admin === true
但用户登录并不会自动成为管理员,因为这会带来相当大的安全风险。
您需要在将用户标记为管理员的受信任环境中运行代码。此 admin
值称为自定义声明,因此我建议阅读有关 custom claims 的文档,特别是有关 setting custom claims through the Admin SDK 的本部分。
执行此操作后,您下次登录用户时,他们将拥有该 admin
声明并将其传递给安全规则。