上周帮朋友公司处理一个头疼事:他们开发了三款内部工具,每次给新同事开通权限,都得手动改数据库、发邮件、记Excel——结果上周又漏配了一个测试账号,导致上线前半小时才发现登录报错。
为啥非得自己搭?
市面上的授权系统动辄年费几万,还要对接LDAP、做SSO、搞审计日志……可你只是五人小团队,就管二十来个用户、七八个功能模块,真用不上那么重。这时候,一个轻量、能快速改、看得见逻辑的授权管理平台,反而最实在。
核心就三块:用户、资源、规则
别被‘平台’俩字吓住,其实就是三个表:
• 用户表(存姓名、邮箱、部门)
• 资源表(比如‘财务报表导出’‘客户数据编辑’)
• 授权表(张三 → 财务报表导出 → 允许)
用现成工具的话,推荐从 Supabase 开干——免费起步,自带用户认证和PostgreSQL,后台点点鼠标就能建表,前端直接调API。
举个真实例子:给销售系统加个‘查看历史合同’开关
在Supabase里建一张 permissions 表:
id | user_email | resource_name | granted
1 | wang@company.com | view_contract_history | true
2 | li@company.com | view_contract_history | false前端调用时,简单一行判断:
const hasPermission = await fetch(`/api/perm?user=${email}&res=view_contract_history`)
.then(r => r.json())
.then(data => data.granted);
if (!hasPermission) {
document.getElementById('contract-btn').disabled = true;
}进阶但不复杂的小技巧
• 按部门批量赋权:加个 department_permissions 表,人事调岗时只改用户表里的部门字段,权限自动跟着变;
• 临时权限:授权记录加个 expires_at 字段,到点自动失效,再也不用手动回收;
• 日志留痕:每次修改权限,往 permission_logs 表插一条记录,谁、啥时候、给了谁什么权限,一查就清。
我们上个月给客户部署的版本,前后就花了两天:一天搭基础结构,半天写了个带搜索和勾选框的管理页(Vue + Element Plus),现在运营同事自己就能给区域经理开‘跨省数据查看’权限,不用再喊程序员改代码。
授权管理不是越复杂越安全,而是越清晰越可控。与其等采购流程走完买套用不上的系统,不如先用几十行SQL和一个接口跑起来——跑着跑着,需求自然就稳了,人也踏实了。