0.1.5-beta.2 • Published 4 years ago

@xsyx/xs-kylin-auth v0.1.5-beta.2

Weekly downloads
4
License
ISC
Repository
gitlab
Last release
4 years ago

xs-kylin-auth

中后台接入kylin统一登陆授权包

环境要求
  • chrome V50+

默认接入方式

建议请在路由拦截器中实例化 KylinOidcAuth、PairRoutes

// kylin 授权
import {KylinOidcAuth,PairRoutes}  from '@xsyx/xs-kylin-auth';
// 实例化对象
window.$kylinOidcAuth = new KylinOidcAuth({
  platformKey:"xxxxx", // 平台key
  ssoBaseUrl:"xxxxx" // sso 授权服务地址
});
// 调用方式1: promise 
$kylinOidcAuth.readyPromise().then(function (token) {
  console.log('readyPromise:',token.length);
}).catch(e=>{
  console.log('readyPromise error:',e);
});
// 调用方式2: ready
$kylinOidcAuth.ready(function (token) {
    console.log('====$kylinOidcAuth ready!====',token.length);
});

CDN 接入方式

默认在window对象上挂载XsKylinAuth、$kylinOidcAuth(autoCall参数true的时候$kylinOidcAuth是函数,其他情况是实例)对象

// body 或者 head 引入 
<script src="http://front-prod-cdn.xsyx.xyz/common-lib/0.1.5/@xsyx/xs-kylin-auth/0.1.5/xs-kylin-auth.js"></script>

// 调用方式1:无new promise调用方式 $kylinOidcAuth({ platformKey:"ec-after-sale-dev", ssoBaseUrl:"http://kylin.uat.xsyxsc.cn" }).readyPromise().then(function (token) { console.log('token:',token.length); }).catch(function (e) { console.log('e',e); });

// 调用方式2:new 实例化方式 window.$kylinOidcAuth = new KylinOidcAuth({ platformKey:"ec-after-sale-dev", ssoBaseUrl:"http://kylin.uat.xsyxsc.cn" }) $kylinOidcAuth.readyPromise().then(function (token) { console.log('readyPromise:',token.length); }).catch(e=>{ console.log('readyPromise error:',e); });

// 调用方式3:ready方式(只允许调用一次,并且只执行第一次) // 配置优先注入式 window.$kylinAuthConfig,需要引用xs-kylin-auth.js之前引入

$kylinOidcAuth.ready(function (token){ // this 指向的是 $kylinOidcAuth console.log('====$kylinOidcAuth ready !====',token.length); // 获取权限(菜单、用户、按钮) // Promise.all(this.oidcAuthMenu(),this.oidcUserInfo(),this.oidcAuthButton()).then(data=>{ // console.log('===data===',data); // }).catch(e=>{ // // }) })

#### 安全退出登录

window.$globalOidc.signoutRedirect();

## KylinOidcAuth 类
new KylinOidcAuth(options)
### 入参 options (object)
|参数名称|类型|默认值| 说明 |
|----|----|----|----|
| platformKey | String |- |kylin 平台key|
| ssoBaseUrl | String |- |kylin 服务请求地址|
| saveCookie | Boolean |false|是否开启cookie存储token|
| useStore | Boolean |false|是否开启cookie存储token|
| userManagerConfig | Object |{}|oidc-client,UserManager类扩展入参数|
| authCode | Number |1001|kylin请求成功code(请勿随意修改)|
| expireCode | Number |401|kylin请求失败code(请勿随意修改)|
### 方法
##### isOidc
> 返回 window.$globalOidc ,判断oidc 是否实例化UserManager

##### ready 
> 正常获取到token钩子函数(只执行一次),回调函数带回token

##### readyPromise
> ready方法的promise调用,回调函数带回token

##### oidcAuthMenu
> 获取权限页面菜单

##### oidcUserInfo
> 获取当前登录用户信息

##### oidcAuthButton
> 获取所有按钮权限
- 参数key 默认 'button_Code',用于筛选按钮组

##### checkSSOLogin
> 检测是否登陆kylin

##### signIn
> 跳转到登录页

##### signOut
> 退出登录

##### oidcLoginOut(旧)不推荐
> 手动退出登录

##### getAuthInfo(旧)不推荐
> 获取用户认证信息token

## PairRoutes 类
> 后端菜单修改前端路由信息
- asideMenu 平台服务器返回菜单
- localRoute 本地路由信息

new PairRoutes(asideMenu,localRoute)

##### .output
> 获取后端菜单 映射前端的路由信息