Access 权限管理插件 
概述 
Access 是一个强大的 Vue 权限管理插件,提供完整的用户认证和权限控制解决方案。主要功能包括:
- 用户登录/注销管理
- 细粒度权限验证
- 路由访问控制
- 请求自动拦截
- 本地存储管理
安装与配置 
基本配置 
typescript
import { Access } from '@vtj/renderer';
const access = new Access({
  session: false, // 是否使用会话模式
  authKey: 'Authorization', // 认证头字段名
  storageKey: 'ACCESS_STORAGE', // 本地存储key
  storagePrefix: '__VTJ_', // 存储前缀
  whiteList: ['/public'], // 路由白名单
  unauthorized: '/unauthorized', // 未授权跳转路径
  auth: '/login', // 登录页面路径
  unauthorizedCode: 401, // 未授权状态码
  appName: 'myApp' // 应用名称
});集成到 Vue 应用 
typescript
// main.ts
import { createApp } from 'vue';
import { request } from '@vtj/utils';
import App from './App.vue';
import router from './router';
const app = createApp(App);
app.use(access); // 安装插件
access.connect({ router, request }); // 连接路由和请求
app.mount('#app');核心 API 
登录 
typescript
access.login({
  token: 'user_token',
  permissions: {
    'user.create': true,
    'user.delete': false
  }
});注销 
typescript
access.logout();权限验证 
typescript
// 检查是否拥有所有指定权限
const canCreate = access.can('user.create');
// 检查是否拥有任一指定权限
const canEdit = access.some(['user.edit', 'user.update']);
// 函数式检查
const hasPermission = access.can((permissions) => {
  return permissions['admin.*'];
});获取用户数据 
typescript
const userData = access.getData();
const token = access.getToken();路由守卫配置 
基本配置 
typescript
access.connect({
  router, // Vue Router 实例
  mode: ContextMode.Raw // 运行模式
});白名单配置 
typescript
// 数组形式
whiteList: ['/public', '/about'];
// 函数形式
whiteList: (to) => to.path.startsWith('/public');自定义未授权处理 
typescript
unauthorized: () => {
  // 自定义处理逻辑
};请求拦截 
集成请求库 
typescript
import axios from 'axios';
access.connect({
  request: axios // 支持任何符合规范的请求库
});请求自动注入 Token 
插件会自动在请求头中添加认证信息:
http
Authorization: Bearer user_token响应拦截 
当接口返回 401 状态码时,自动跳转到登录页面
在组件中使用 
选项式 API 
vue
<script>
  export default {
    methods: {
      createUser() {
        if (this.$access.can('user.create')) {
          // 执行创建操作
        }
      }
    }
  };
</script>组合式 API 
vue
<script setup>
  import { useAccess } from '@vtj/renderer';
  const access = useAccess();
  const canEdit = computed(() => access.can('user.edit'));
</script>高级功能 
RSA 加密支持 
typescript
new Access({
  privateKey: '-----BEGIN PRIVATE KEY-----...'
});自定义提示方法 
typescript
alert: (message) => {
  return ElMessageBox.alert(message, '提示', {
    type: 'warning'
  });
};临时禁用拦截 
typescript
access.disableIntercept(); // 禁用拦截
// 执行特殊请求
access.enableIntercept(); // 重新启用注意事项 
- 确保在路由守卫生效前完成用户状态初始化
- 生产环境建议开启 RSA 加密增强安全性
- 权限标识符建议使用统一的命名规范(如:模块.操作)