0.0.9 • Published 2 years ago

iiot-sso v0.0.9

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

SSO adapter for IIOT platform

安装iiot-sso包到项目中

npm install iiot-sso
 # 如果使用yarn安装
yarn add iiot-sso

使用 iiot-sso库

  1. 配置和初始化,sso库会自动检测当前浏览器上是否有效的登录信息,如果设置checksso为true, 当没有找到登录信息时会自动跳转到用户中心的登录界面

sso库会自动在后台自动刷新token, 若token过期了,authenticated会被设置为false

import { MiniSSO  } from "iiot-sso";

// authServerUrl指定鉴权服务器地址
const miniSso = new MiniSSO({ authServerUrl: 'https://user.example.com' });

// init 会自动验证当前是否有用户登录过。
// checksso 指定是否自动跳转登录页
miniSso.init({ checksso: true }).then((auth: boolean) => {
  if (auth) {
    // Vue.prototype.$miniSso = miniSso;
    console.log('Authenticated');
    console.log('当前登录的用户名:', miniSso.parsedToken.label);
    console.log('当前登录的手机号:', miniSso.parsedToken.phone);
    console.log('当前登录的租户:', miniSso.parsedToken.tenant);
    console.log('当前登录的权限:', miniSso.parsedToken.role)

  }

//   new Vue({
//     render: h => h(App),
//   }).$mount('#app')

}

).catch(error => {
  console.log('Authenticated Failed ------->', error)
})
  1. 跳转到登录页
// redirectUri指定登录成功后的跳转地址
miniSso.login({ redirectUri: location.href  })
  1. 登出
// redirectUri指定登出后的跳转地址
// 注意:登出后会清除用户在此浏览器的token
miniSso.logout({ redirectUri: '/'  })
  1. 获取token信息

    miniSso解析了token中的信息,存放在miniSso.parsedToken中,具体格式如下

export interface SSOToken {
    [key: string]: any;
    /**
     * token字符串,调用用户中心的API时需要在请求头中带上此信息,如下
     *   Authorization: Bearer ${token}
     *
     *  token的合法性需要应用后台向中户中心校验
     */
    token: string | null | undefined;
    /**
     * 过期时间,单位:ms
     */
    expired: number;
    /**
     * 用户id
     */
    id: number;
    /**
     * 租户id
     */
    tenant: number;
    /**
     * 可用来显示的用户名称, 如果用户未设置, 可能为空
     */
    label?: string;
    /**
     * 用户手机号,也是用户的登录名
     */
    phone: number;
    /**
     * 用户角色
     * 其中 { meta: ["ADMIN"] } 表示当前用户为租户管理员
     */
    role: {
        [key: string]: string[];
    };
    /**
     * 用户域,即行业应用角色 
     */
    realm: string[]
}
0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago