1.0.17 • Published 8 months ago
@iscdev/messenger v1.0.17
messenger
指令集信使工具包
包含了SSO和ACL,还有一些和基座通信的功能(暂未开放)
安装
npm i -S @iscdev/messenger
sso
单点登录
使用
import {sso} from '@iscdev/messenger'
sso.auth(options?: AuthOptions)
授权验证
该方法尽量靠前调用,调用后如果本地存储中没有授权信息则会跳转至指令集的授权登录页,登录成功后会携带token
跳回当前页面
options
传入一个对象,字段如下:
excludes
: 一个数组,用以验证白名单,匹配当前路径的pathname
部分,可以为字符串(全文匹配),可以为正则表达式,也可以为方法( 返回匹配结果),例如:['foo/bar', (p)=>p.startsWith('foo/'), /^foo\//]
access
权限控制
使用
import {access} from '@iscdev/messenger'
初始化
使用前需要初始化:access.init(appCode: string, options?:InitAccessOptions)
appCode
: 为注册在系统中的App的appCode,可以从系统管理中获取options
: 为初始化选项router
: vue-router的路由实例,用以监控路由是否可访问,如果不可访问,则会跳转到默认的无权限页面或者所传入的后补路由fallbackRoute
: 后补路由
判断是否有权限
function access(accessCode: string | string[])
传入一个权限码,需要在权限管理应用中配置获取
- accessCode 支持多个code传入,数组表示逻辑或,以逗号分隔字符串表示逻辑与,以!开头的字符串表示逻辑取反,且支持组合
返回值为Boolean
,为是否有权限
将权限应用到路由实例
function accessToRouter(router: Router, fallbackRoute?: RouteLocationRaw)
同初始化中的配置,该方法为手动应用
将权限使用到vue的插件和指令中
import {useVueAccess} from '@iscdev/messenger'
useVueAccess(app) //vue的App实例
支持两种个使用方式,具体使用哪种取决于具体的业务场景,如下:
<div v-access="app/edit">编辑</div>
,直接使用v-access
指令<div v-if="$access('app/edit')">编辑</div>
,使用全局的$access
方法