可将路由权限映射表序列化后存入 localStorage,需用 JSON.stringify() 存储、JSON.parse() 安全读取并兜底空对象,结合用户角色在路由守卫中动态校验权限,并在登录、权限变更或切换账号时及时更新或清除缓存。

直接把路由权限映射表(比如一个对象,键是路由路径,值是所需角色或权限标识)存进 localStorage 即可,但要注意序列化、安全性、更新同步和校验逻辑的配合。
序列化后存入 localStorage
localStorage 只支持字符串,必须用 JSON.stringify() 转换后再存。例如:
const routePermissionMap = {
'/admin/user': ['admin'],
'/admin/log': ['admin', 'auditor'],
'/profile/edit': ['user', 'admin']
};
保存方式:
localStorage.setItem('routePermissionMap', JSON.stringify(routePermissionMap));
读取时做安全解析与默认兜底
读取后需用 JSON.parse(),并加 try...catch 防止数据损坏导致解析失败:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
立即学习“Java免费学习笔记(深入)”;
- 若解析失败或值为空,返回空对象
{},避免后续访问报错 - 不建议直接赋值给全局变量,应封装成函数按需获取
示例:
function getRoutePermissionMap() {<br>
try {<br>
const raw = localStorage.getItem('routePermissionMap');<br>
return raw ? JSON.parse(raw) : {};<br>
} catch (e) {<br>
console.warn('Failed to parse routePermissionMap from localStorage');<br>
return {};<br>
}<br>
}
权限校验时结合当前用户角色使用
缓存的是“规则”,校验仍需运行时判断。例如在路由守卫中:
- 从
getRoutePermissionMap()拿到映射表 - 查当前路由路径对应的权限数组(如
map[to.path]) - 检查当前用户角色是否在该数组中(支持单角色或多角色匹配)
简单校验逻辑示例:
const map = getRoutePermissionMap();<br>
const requiredRoles = map[to.path] || [];<br>
const hasPermission = requiredRoles.some(role => userRole.includes(role));<br>
if (!hasPermission) next('/403');
注意缓存更新时机与一致性
权限映射表不是静态不变的,尤其当后台动态配置路由权限时:
- 登录成功后,应从接口拉取最新映射表并写入
localStorage - 管理员修改权限后,前端需主动刷新或通知其他标签页同步(可用
storage事件监听) - 敏感操作(如切换账号)务必清空旧缓存:
localStorage.removeItem('routePermissionMap')


















