问题描述
我想根据登录的用户是否是管理员来添加功能,但是我真的不知道应该使用哪种条件(用于使用删除按钮进行条件渲染等),以检查用户是否为管理员或不。根据用户的ID进行操作是否安全?首先,我考虑过测试我希望他具有功能的每个组件中的用户,使用recoiljs的状态为“ user”,以访问整个应用程序中的用户,但恐怕人们会改变状态使用react工具扩展,然后假装他们是管理员,因此删除文章和内容...测试用户是否是管理员的最佳方法是什么?在react项目中不使用Firebase身份验证?
解决方法
如果没有后端的绝对强制,客户端代码承担管理员职责永远是不安全的。这是不安全的,因为客户端代码可能会遭到破坏,并且可能无法按您期望的方式工作。它运行在用户完全控制的设备上。
客户端代码可以检查某些指示器以查看用户是否为管理员(以您认为合适的任何方式),但是最终检查需要通过安全规则在后端进行(如果您使用的是Realtime等Firebase产品数据库,Firestore或Cloud Storage),或在安全后端(包括Cloud Functions之类的产品)上运行的代码中。