# sdk-web

> 本项目包含一些基础库.

Latest version **0.4.3** (published 2021-07-03) · MIT license · 0 weekly downloads

## Install

```sh
npm install sdk-web
pnpm add sdk-web
yarn add sdk-web
bun add sdk-web
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.4.3 |
| Published | 2021-07-03 |
| First published | 2021-07-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=6.0.0 |
| Dependencies | 5 |
| Unpacked size | 5.9 KB |
| Known vulnerabilities | 0 (+27 in 3 direct dependencies) |
| Install scripts | no |
| Author | supercy |
| Maintainers | supercy |

## Links

- npm: https://www.npmjs.com/package/sdk-web
- npm.io page: https://npm.io/package/sdk-web

## Dependencies (5)

- [vue](https://npm.io/package/vue.md) ^2.6.10
- [axios](https://npm.io/package/axios.md) ^0.19.0
- [element-ui](https://npm.io/package/element-ui.md) ^2.13.0
- [oidc-client](https://npm.io/package/oidc-client.md) ^1.9.1
- [@sentry/browser](https://npm.io/package/@sentry/browser.md) ^5.15.4

## Recent versions

- 0.4.3 (latest) — 2021-07-03

## README

# sdk-web

本项目包含一些基础库.

## Framework

- 主前端使用此类驱动Luigi

```js
// 初始化工具里诶, 配置app code及环境
// 此例子中的环境通是过配置中心注入的
const framework = new sdk.Framework({
    appCode: 'prc',
    env: window.configs.env
})

// 初始化luigi, 加载左侧导航等操作
await framework.init()
```

## Auth

- 运行时使用此工具类端进行登录, 登出, 权限验证等操作
- 业务ui可以使用此工具类获取用户部分信息

```js
// 初始化
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()
```

---
_Source: https://npm.io/package/sdk-web · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
