【发布时间】:2018-11-14 21:23:54
【问题描述】:
授予管理员权限
我正在使用自定义声明向用户授予管理员权限,方法是在创建“admins/{userId}”中的文档时触发它。
然后,云函数将用户自定义声明中的“admin”属性设置为 true。然后用户需要再次登录,他是管理员。
现在我在 Firestore 和 Storage 的安全规则中检查管理员自定义声明,以便用户可以删除/编辑所有内容。
撤销管理员权限???
但是当我想撤销用户的管理员权限时,我如何确保权限真的在所有地方都被撤销了。
对于 Firestore,我可以添加一个额外的检查,它也从 Firestore“admins/{userId}”方向获取数据并且不允许访问。
但是如果我撤销了权利并且用户没有刷新他的令牌,他仍然可以编辑/删除 Firestorage 中的所有内容。 而且由于我无法从 Storage-Security 访问 Firestore 数据,我什至无法仔细检查“admins/”方向。
那么,如何可靠地为 firestore 和 storage 实现管理功能?
【问题讨论】:
-
Auth token 一小时后过期,需要刷新。这会自动发生。自定义声明是否会在一个小时后持续存在,然后客户端上的令牌必须刷新?
标签: firebase firebase-authentication google-cloud-firestore firebase-storage