71 lines
1.8 KiB
Markdown
71 lines
1.8 KiB
Markdown
## 安装
|
||
```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()
|
||
}
|
||
})
|
||
```
|