firebase - 将登录用户的角色存储在 vuex 安全/最佳实践中吗?
问题描述
我正在使用 Firebase 进行身份验证并设置自定义声明来处理角色/授权。这是一个非常典型的应用程序,有 2 个角色:“管理员”、“查看者”。
我的计划是在注册时向新用户添加“管理员”自定义声明。然后管理员可以在应用程序中添加一个角色为“查看者”的用户,这将调用一个 firebase 函数来设置“查看者”自定义声明。
当用户登录时,我将阅读他们的声明并将值作为 {role: 'admin'} 或 {role: 'viewer'} 存储在 vuex 商店中。
稍后在我的应用程序中,我计划使用 getter 检查角色并根据用户是否是管理员来隐藏/显示 UI 的不同元素。我还使用 vuex-persistedstate 插件将存储保存在本地存储中。
这一切看起来都是个好计划吗?在 vuex 中存储 -> 角色:'admin' 是否存在任何安全问题。或者这是一个标准的应用程序架构?
谢谢。
解决方案
将这些信息存储在 Vuex 或任何其他状态管理系统中都没有关系。Firebase SDK 身份验证已在客户端浏览器的令牌中公开此信息。
您应该访问 Cloud Functions 中的自定义声明,并确定用户是否有权执行此类任务。此外,一个不错的计划是使用带有自定义声明的安全规则来保护您的服务。
推荐阅读
- sql - 查询“记录”中的特定值
- node.js - 使用 res.json() 时,我在猫鼬中收到内部错误 500 而不是 404
- python - 我的代码中的动态查询有问题
- python - 尝试从 Django 表单运行 python 脚本
- php - FPDF 页脚获取在 foreach 行上声明的变量
- linux - 如何限制用户访问主文件夹
- java - 2020-12-16T16:27:57+00:00 的 DateFormat ParseException
- azure-devops - 使用 Azure DevOps 分叉 Github 存储库
- javascript - Firebase 功能消息发送错误,接收方无效
- python - 如何重置索引计数器?