Files
lingniu-platform/sdk/frontend/unified-login-sdk/README.md
2026-02-11 11:04:23 +08:00

119 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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