@mu-cabin/opms-permission
v0.9.29
Published
Frontend SDK for OPMS permission and auth management.
Readme
@mu-cabin/opms-permission
简介
@mu-cabin/opms-permission 是一个用于 OPMS 权限与认证管理的前端 SDK,支持资源、菜单、组织、用户信息的统一获取与本地缓存,适用于需要接入 OPMS 权限体系的前端项目。
安装
pnpm add @mu-cabin/opms-permission
# 或
yarn add @mu-cabin/opms-permission
# 或
npm install @mu-cabin/opms-permission主要功能
- SSO 单点登录/登出跳转
- 用户信息获取与本地缓存
- 资源、菜单、控件权限获取与处理
- 组织树、公司信息查询
- 本地存储自动过期管理
快速开始
import { OpmsPermission, jumpToSSOLogin, jumpToSSOLogout } from '@mu-cabin/opms-permission';
const permission = new OpmsPermission({
systemId: 1001, // 系统ID
baseUrl: 'https://your-api-domain/opms', // OPMS后端接口地址
ssoBaseUrl: 'https://your-sso-domain', // SSO登录地址
});
// 登录(需URL带有code参数)
await permission.login();
// 获取用户信息
const userInfo = await permission.getUserInfo();
// 获取资源、菜单、控件权限
const { resources, menuList, widgetMap } = await permission.getResources(userInfo.account);
// 跳转到SSO登录
jumpToSSOLogin({ baseUrl: 'https://your-sso-domain' });
// 跳转到SSO登出
jumpToSSOLogout({ baseUrl: 'https://your-sso-domain', redirectToUrl: window.location.origin });主要API
类:OpmsPermission
| 方法 | 说明 |
| ---- | ---- |
| login() | SSO登录,获取并缓存token |
| logout() | 登出并清除本地缓存 |
| getUserInfo() | 获取当前用户信息 |
| getResources(uniAccount) | 获取资源、菜单、控件权限 |
| queryOrgs() | 获取组织树 |
| queryCompanies() | 获取公司信息 |
| isLogin() | 判断当前是否已登录 |
| getToken() | 获取当前token |
SSO 工具方法
jumpToSSOLogin({ baseUrl, redirectUrl?, clientId? })跳转到SSO登录页jumpToSSOLogout({ baseUrl, redirectToUrl, clientId? })跳转到SSO登出页
类型说明
Resource资源对象,包含资源ID、类型、路径、子节点等MenuItem菜单项对象,包含菜单路径、名称、子菜单等UserInfo用户信息对象,包含账号、姓名、工号、组织等UserOrganization用户组织信息
常见问题
- 为什么获取不到资源/菜单?
- 请确保已正确登录(URL带有code参数),并且接口地址、systemId 配置正确。
- 本地缓存多久失效?
- 资源、菜单等默认缓存24小时,超时会自动重新拉取。
- 如何自定义SSO clientId?
jumpToSSOLogin和jumpToSSOLogout方法均支持传入clientId参数。
