## 安装 ```bash npm install oauth2-login-sdk --save # 或 yarn add oauth2-login-sdk ``` ## 快速开始 ### 基本使用 ```typescript // 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 }) ``` ```properties # 配置文件 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 ``` ```typescript // 配置路由导航守卫 router.beforeEach(async (to, _from, next) => { // 打开页面 判断是已认证 if (!unifiedLoginSDK.isAuthenticated()) { // 未认证 if (to.path === '/oauth2/callback') { // 如果是登录回调 进行回调登录 await unifiedLoginSDK.handleCallback() }else{ // 跳转登录 await unifiedLoginSDK.login() } } else { //已认证 打开页面 next() } }) ``` ```typescript // 请求后端接口添加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() } }) ```