Skip to content

Snapmaker/snapmaker-admin

Repository files navigation

@snapmaker/admin-auth

Snapmaker 管理端共享权限包。对接 snapmaker-admin-oauth 权限系统,提供 OAuth2 登录、RBAC 权限判断、服务端菜单驱动渲染、请求拦截器等完整能力。

安装

# 本仓库 workspace 内
pnpm add @snapmaker/admin-auth --filter <your-app>

# 其他仓库(Git 安装)
pnpm add "git+https://your-gitlab.com/snapmaker/snapmaker-admin.git#main&path=packages/admin-auth"

快速开始

// 1. 配置 API 地址
import { initAuthConfig } from '@snapmaker/admin-auth';

// 开发环境:相对路径走 Umi proxy
initAuthConfig({ baseUrl: '' });

// 生产环境:绝对路径直连后端
initAuthConfig({ baseUrl: 'https://api.snapmaker.com' });
// 2. .umirc.ts — 请求拦截器
export const request = createPermissionRequest({
  getAccessToken, setTokens, removeTokens, attemptRefresh, getRefreshState,
});
// 3. 页面中控制权限
import { Authorized } from '@snapmaker/admin-auth';
<Authorized permission="system:user:delete"><Button danger>删除</Button></Authorized>

详细接入步骤见 INTEGRATION.md

做了什么

模块 说明
auth.ts Token 存取(localStorage 双 token)、并发安全的 refresh、封装全部 API
access.ts createAccess(user)hasPermission / hasAnyPermission / hasRolesuper_admin 全过
menu.ts 服务端菜单树 → ProLayout menuData 转换
request.ts createPermissionRequest() → Umi RequestConfig 工厂,自动 Bearer token + 401 refresh
Authorized.tsx <Authorized permission="xxx"> 权限守卫组件
useLogin.ts useLogin() hook,封装 login → 存 token → 拉权限信息的完整流程

依赖

  • react ^18/^19
  • @umijs/max ^4
  • antd ^5

后端前置条件

snapmaker-admin-oauth 服务已部署,核心接口:

接口 说明
POST /system/auth/login 账号密码登录,返回 accessToken + refreshToken
GET /system/auth/get-permission-info 返回用户、角色、权限标识、菜单树
POST /system/auth/refresh-token 刷新 token
POST /system/auth/logout 登出

License

UNLICENSED — 内部使用

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors