Files
lingniu-platform/sdk/frontend/oauth2-login-sdk/README.md
2026-02-10 17:24:47 +08:00

1.8 KiB
Raw Blame History

安装

npm install oauth2-login-sdk --save
# 或
yarn add oauth2-login-sdk

快速开始

基本使用

// main.ts
import unifiedLoginSDK from "oauth2-login-sdk"

// 初始化配置
unifiedLoginSDK.init({
    clientId: import.meta.env.VITE_APP_CLIENT_ID,
    registrationId: import.meta.env.VITE_APP_REGISTRATION_ID,
    storageType: import.meta.env.VITE_APP_STORAGE_TYPE,
    basepath: import.meta.env.VITE_APP_BASE_API,
    idpLogoutUrl: import.meta.env.VITE_APP_IDP_LOGOUT_URL,
    homePage: import.meta.env.VITE_APP_HOME_PAGE
})
# 配置文件 
VITE_APP_CLIENT_ID=xxx
VITE_APP_REGISTRATION_ID=xxx
VITE_APP_STORAGE_TYPE=localStorage
VITE_APP_IDP_LOGOUT_URL=http://106.14.217.120/idp-ui/logout
VITE_APP_HOME_PAGE=http://106.14.217.120/portal-ui/index
// 配置路由导航守卫
router.beforeEach(async (to, _from, next) => {
    // 打开页面 判断是已认证
    if (!unifiedLoginSDK.isAuthenticated()) {
        // 未认证
        if (to.path === '/oauth2/callback') {
            // 如果是登录回调 进行回调登录
            await unifiedLoginSDK.handleCallback()
        }else{
            // 跳转登录
            await unifiedLoginSDK.login()
        }
    } else {
        //已认证 打开页面
        next()
    }
})

// 请求后端接口添加token
const service = axios.create({
    // axios中请求配置有baseURL选项表示请求URL公共部分
    baseURL: import.meta.env.VITE_APP_BASE_API,
    // 超时
    timeout: 10000
})

// request拦截器
import unifiedLoginSDK from "oauth2-login-sdk"
service.interceptors.request.use((config: any) => {
    if (getToken() && !isToken) {
        config.headers['Authorization'] = unifiedLoginSDK.getToken() 
    }
})