0.0.2 • Published 3 years ago
lynnlin-sso-um v0.0.2
rect-sso-um
通过统一调用以及参数配置实现SSO和UM菜单权限的配置
使用流程
1 安装
npm install snk-sso-um --save
2 配置文件 .roadhogrc.js
...
extraBabelIncludes:["node_modules/snk-sso-um"], // <-- 增加babel 编译配置
env: {
development: { // 开发环境
extraBabelPlugins: [
'dva-hmr',
],
define: {
SERVER: '',
// 单点登录用户信息接口 具体业务具体填写
SSOSERVER:'http://ip:port/sso/user',
UMMENUSERVER:'http://ip:port/um/system/这里是UM系统名/user/{userCode}/menu',
UMBUTTONSERVER:'http://ip:port/um/system/这里是UM系统名/user/{userCode}/button',
SSOLOGOUTSERVER:'http://10.1.109.27:8080/sso/logout',
}
},
},
3 在src/router.js 编写业务代码,增加Menu菜单配置,以及路由注册,和方法调用
DEMO
名称 | 类型 | 描述 |
---|---|---|
um | boolean | 是否使用UM权限 默认为false |
menuData | JSON | 菜单数据,如果UM为true的时候不传 |
router | JSON | 路由注册数据 |
useButtonPermission | boolean | 是否使用调用BUTTON权限 默认为false |
... | 其他参数 | 固定写法,参照demo中的配置 |
4 更改src/layout/BasicLayout.js
DEMO
其中增加了ssoummodel的注入,以及Menu菜单数据的注入,以及退出的等方法实现
新的工程可直接拷贝这个页面使用
5 按钮权限的使用(如果应用需要使用到的按钮权限的话)
首先需要在UM系统中进行按钮的相关配置
然后.roadhogrc.js配置增加按钮路径的配置UMBUTTONSERVER字段
然后src/router.js 中配置 useButtonPermission为true
普通按钮权限
import { PermissionWrapper } from 'snk-sso-um';
<PermissionWrapper permissionKey='um系统中对应的按钮的名称'>
<Button>删除</Button> // <- 这里原来怎么写就怎么写
</PermissionWrapper>
理论上是可以包裹任意的组件,但是包裹Select.Option报错,所以增加了如下的实现。
下拉按钮的权限
import { PermissinSelectOption } from 'snk-sso-um';
<Select>
<Option>审批</Option>
<Option>未审批</Option>
<Option><PermissinSelectOption permissionKey='um系统中对应的按钮的名称'>权限</PermissinSelectOption></Option>
</Select>
以上为使用步骤
开发注意事项
因为封装时候的代码,在src\AuthorityWrapper\router中封装了model的引用,在开发和发布的时候因为实际的业务model路径不一致,所以需要做如下的更改
http://git.sinosafe.com.cn/snk/snk-sso-um/blob/master/src/AuthorityWrapper/router.js#L23
http://git.sinosafe.com.cn/snk/snk-sso-um/blob/master/src/AuthorityWrapper/router.js#L39
开发阶段
23行39行 路径为:
../models
发布阶段
23行39行 路径为:
../../../../src/models