Token
提示
社区版不支持,请升级到企业版或平台版。请替换licenseKey
功能简介
AccessToken 是微语系统提供的第三方登录凭证,主要用于第三方系统集成时避免用户二次登录。通过 AccessToken,第三方系统可以直接让用户登录到微语系统,无需用户重新输入用户名和密码。
使用场景
- 第三方系统集成: 当您的系统需要集成微语客服功能时
- 单点登录 (SSO): 实现用户一次登录即可访问多个系统
- 嵌入式应用: 在您的应用中嵌入微语客服界面
- API 调用: 通过 AccessToken 进行 API 认证,实现程序化访问微语系统的各项功能
AccessToken 登录方式
1. 获取 AccessToken
方式一:通过管理后台生成
在微语管理后台的 Token 管理页面,可以生成和管理 AccessToken。
方式二:通过登录接口获取
您也可以通过调用登录接口来获取 AccessToken,这种方式适用于程序化获取 Token 的场景。
接口说明
- 接口地址:
/auth/v1/login
,注意添加服务器域名或ip,如:http://127.0.0.1:9003/auth/v1/login
- 请求方法:
POST
- 内容类型:
application/json
TypeScript 类型定义
// 登录参数类型
interface LoginParams {
username?: string;
password?: string;
channel?: string;
platform: string;
}
// 登录返回结果类型
interface LoginResult {
message: string;
code: number;
data: {
accessToken?: string;
user?: any;
};
}
使用示例
import axios from 'axios';
// 配置登录参数
const loginInfo: LoginParams = {
username: 'your_username',
password: 'your_password',
channel: 'FLUTTER',
platform: 'BYTEDESK'
};
// 登录接口封装
export async function login(params: LoginParams): Promise<LoginResult> {
try {
const response = await axios.post<LoginResult>('/auth/v1/login', {
...params,
});
return response.data;
} catch (error) {
console.error('登录失败:', error);
throw error;
}
}
// 获取 AccessToken
async function getAccessToken() {
try {
const result = await login(loginInfo);
if (result.code === 200 && result.data.accessToken) {
const accessToken = result.data.accessToken;
console.log('获取到 AccessToken:', accessToken);
// 使用 AccessToken 进行后续操作
return accessToken;
} else {
console.error('登录失败:', result.message);
return null;
}
} catch (error) {
console.error('获取 AccessToken 失败:', error);
return null;
}
}
// 完整示例:获取 Token 并跳转到系统
async function loginAndRedirect() {
const accessToken = await getAccessToken();
if (accessToken) {
// 使用获取到的 AccessToken 跳转到系统
const chatUrl = `http://127.0.0.1:9005/agent/chat?accessToken=${accessToken}`;
window.open(chatUrl, '_blank');
}
}
获取Token注意事项
- 安全性: 请勿在前端代码中硬编码用户名和密码
- 错误处理: 需要正确处理登录失败的情况
- Token 缓存: 可以将获取到的 AccessToken 缓存起来重复使用
- 有效期: 注意 AccessToken 的有效期,过期后需要重新获取
2. 撤销 AccessToken
当 AccessToken 不再需要使用时,为了安全起见,建议及时撤销使其失效。系统提供了两种撤销方式:
方式一:通过管理后台撤销 或 直接退出登录撤销
在微语管理后台的 Token 管理页面,可以手动撤销指定的 AccessToken,使其立即失效。