1.8 KiB
1.8 KiB
安装
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()
}
})