119 lines
2.4 KiB
Markdown
119 lines
2.4 KiB
Markdown
# Unified Login SDK
|
||
|
||
统一登录前端SDK,基于OAuth2协议实现前后端分离项目的认证和权限管理。
|
||
|
||
## 安装
|
||
|
||
```bash
|
||
npm install unified-login-sdk
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 基础使用
|
||
|
||
```javascript
|
||
import unifiedLoginSDK from 'unified-login-sdk';
|
||
|
||
// 初始化配置
|
||
unifiedLoginSDK.init({
|
||
clientId: 'your-client-id',
|
||
basepath: 'https://api.example.com',
|
||
homePage: '/dashboard',
|
||
idpLogoutUrl: 'https://idp.example.com/logout'
|
||
});
|
||
|
||
// 检查登录状态
|
||
if (!unifiedLoginSDK.isAuthenticated()) {
|
||
// 执行登录
|
||
await unifiedLoginSDK.login();
|
||
}
|
||
|
||
// 获取用户信息
|
||
const userInfo = unifiedLoginSDK.getUserInfo();
|
||
console.log('欢迎:', userInfo.nickName);
|
||
```
|
||
|
||
### Vue 3 集成
|
||
|
||
```javascript
|
||
// main.js
|
||
import { createApp } from 'vue';
|
||
import { createVuePlugin } from 'unified-login-sdk';
|
||
|
||
const app = createApp(App);
|
||
const loginPlugin = createVuePlugin('localStorage');
|
||
|
||
app.use(loginPlugin, {
|
||
config: {
|
||
clientId: 'your-client-id',
|
||
basepath: 'https://api.example.com',
|
||
homePage: '/dashboard',
|
||
idpLogoutUrl: 'https://idp.example.com/logout'
|
||
}
|
||
});
|
||
|
||
app.mount('#app');
|
||
```
|
||
|
||
### 权限检查
|
||
|
||
```javascript
|
||
// 检查单个权限
|
||
const hasPermission = await unifiedLoginSDK.hasPermission('user:read');
|
||
|
||
// 检查多个权限
|
||
const hasAllPermissions = await unifiedLoginSDK.hasAllPermissions(['user:read', 'user:write']);
|
||
|
||
// 检查角色
|
||
const hasRole = await unifiedLoginSDK.hasRole('admin');
|
||
```
|
||
|
||
## 核心功能
|
||
|
||
- ✅ OAuth2认证流程
|
||
- ✅ Token自动管理
|
||
- ✅ 用户信息获取
|
||
- ✅ 权限和角色检查
|
||
- ✅ Vue 2/3插件支持
|
||
- ✅ 路由守卫集成
|
||
- ✅ 事件监听机制
|
||
|
||
## API参考
|
||
|
||
### 主要方法
|
||
|
||
| 方法 | 说明 | 参数 | 返回值 |
|
||
|------|------|------|--------|
|
||
| `init(config)` | 初始化SDK | 配置对象 | void |
|
||
| `login()` | 执行登录 | redirectUri(可选) | Promise<void> |
|
||
| `logout()` | 退出登录 | 无 | Promise<void> |
|
||
| `isAuthenticated()` | 检查认证状态 | 无 | boolean |
|
||
| `getUserInfo()` | 获取用户信息 | 无 | UserInfo |
|
||
| `hasPermission(permission)` | 检查权限 | 权限标识 | Promise<boolean> |
|
||
| `hasRole(role)` | 检查角色 | 角色标识 | Promise<boolean> |
|
||
|
||
### 事件监听
|
||
|
||
```javascript
|
||
// 登录事件
|
||
unifiedLoginSDK.on('login', () => {
|
||
console.log('用户已登录');
|
||
});
|
||
|
||
// 退出事件
|
||
unifiedLoginSDK.on('logout', () => {
|
||
console.log('用户已退出');
|
||
});
|
||
```
|
||
|
||
## 浏览器支持
|
||
|
||
- Chrome (推荐)
|
||
- Firefox
|
||
- Safari
|
||
- Edge
|
||
|
||
## 许可证
|
||
|
||
MIT |