0.4.3 • Published 3 years ago

sdk-web v0.4.3

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

sdk-web

本项目包含一些基础库.

Framework

  • 主前端使用此类驱动Luigi
// 初始化工具里诶, 配置app code及环境
// 此例子中的环境通是过配置中心注入的
const framework = new sdk.Framework({
    appCode: 'prc',
    env: window.configs.env
})

// 初始化luigi, 加载左侧导航等操作
await framework.init()

Auth

  • 运行时使用此工具类端进行登录, 登出, 权限验证等操作
  • 业务ui可以使用此工具类获取用户部分信息
// 初始化
const auth = new Auth({
    // 参见文档 https://github.com/IdentityModel/oidc-client-js/wiki
    // 下列参数均传入oidc-client库, 重要配置项目说明如下

    // 从dex登录成功后调回的地址, 每个服务都有自己的页面地址, 必须根据情况设置,
    // 比如从`//test.com/a/admin.html`跳转到dex的, 那么redirect_uri一般为`//test.com/a/admin.html`
    redirect_uri: "//localhost:8080",

    // 下述设置说明中的值为默认值, 如果有需要, 可以覆盖

    // dex登录页面地址
    authority: "//lmcp-app-dev.lcfuturecenter.com/dex",

    // 客户端ID, 目前统一定为"console"
    client_id: "console",

    // scope, 设置值如下即可
    scope: "audience:server:client_id:console openid profile email groups",

    // 在refreshtoken不过期的情况下, 自动更新token, 默认开启
    automaticSilentRenew: true,

    // 关闭自动获取oidc用户信息. 默认关闭
    loadUserInfo: false,
})

// 如果有验证信息则进行处理
// 其他后续操作必须在此方法resolve以后操作
await auth.init()

// 进行登录, 跳转至dex
await auth.login()

// 返回是否已登录, 返回布尔值
const logined = await auth.isLogin()

// 登出, 并重定向至dex, 等待登录
await auth.logout()

// 获取验证信息, 未登录返回falsy value, 否则返回有效字符串
const token = auth.getAuth()

// 获取额外信息, 未登录返回falsy value, 否则返回有效字符串
const meta = auth.getMeta()

// 返回一个新对象, 是web请求中需要设置的两种请求头
/* 
Axios.get(
  `http://lmcp-service${prefix}.lcfuturecenter.com/cloud-dev/framework-webproxy/proxy/`,
  {
    headers: {
      ...auth.getHeaders(),
      ExtraHeader: "extra value",
    }
  });
*/
const meta = auth.getHeaders()