权限管理
如何配置管理员账号和权限
Hey,同学!想管理谁可以访问后台吗?这一篇教你配置 Admin 的权限系统~ 🛡️
🤔 权限是什么?
在 iFluxArt 中,权限决定了「谁能做什么」:
| 角色 | 访问 Admin | 管理内容 | 系统设置 |
|---|---|---|---|
| 访客 | ❌ | ❌ | ❌ |
| 用户 | ❌ | ❌ | ❌ |
| 编辑 | ✅ | ✅ | ❌ |
| 管理员 | ✅ | ✅ | ✅ |
⚙️ 配置方式
1. Supabase 后台
进入 Supabase → Authentication → Users:
可以:
- 查看所有用户
- 设置用户元数据(角色)
- 禁用用户
2. 用户元数据
在用户记录中添加 role 字段:
json
{
"email": "admin@example.com",
"role": "admin", // admin, editor, viewer
"name": "管理员"
}
3. 代码中检查
在需要权限的地方检查:
typescript
// 获取当前用户角色
const { data: { user } } = await supabase.auth.getUser();
const role = user?.user_metadata?.role;
if (role !== 'admin') {
// 无权访问
}
🔧 使用流程
1. 创建用户
用户通过 Web 注册后,默认是普通用户。
2. 提升权限
管理员在 Supabase 后台手动设置:
- 找到用户
- 编辑用户元数据
- 设置
role: 'admin'
3. 权限生效
用户重新登录后,权限生效。
📊 权限说明
编辑 (editor)
- 可以管理所有内容
- 不能修改系统设置
管理员 (admin)
- 完整权限
- 可以管理其他用户
超级管理员 (super_admin)
- 预留角色
- 可修改核心配置
🛡️ 安全建议
1. 最小权限
只给必要的权限,不要给太高。
2. 定期审计
检查是否有异常用户:
- 不认识的账号
- 权限过高的普通用户
3. 启用 MFA(可选)
在 Supabase 后台启用双重认证。
💡 常见问题
Q: 如何成为第一个管理员?
回答:在 .env.local 配置 ADMIN_EMAIL,该邮箱注册后会自动获得管理员权限。
Q: 忘记管理员密码怎么办?
回答:通过 Supabase 的「忘记密码」功能重置,然后重新设置角色。
🔗 下一步
🛡️ 权限管理是网站安全的「第一道防线」!