Files
websopy-mp/src/api/sso.ts
赵忠林 ffab0ec25c feat(developer): 完成小程序开发者中心和企业控制台改造
- 设计并实现了开发者中心与企业控制台两大模块
- 按用户角色区分开发者和企业客户,支持多项目类型及成员管理
- 新增项目管理、应用管理、API Key管理及成员邀请等多功能页面
- 实现应用版本发布、消息通知中心、权限审批与开发者申请流程
- 完成CI/CD流水线、运营监控、发票管理、SSO单点登录功能
- 搭建SDK下载中心、工单系统、FAQ系统、数据导入导出等模块
- 优化后端API,支持已登录和未注册用户不同加入应用流程
- 前端按钮统一采用微信手机号授权,完善用户授权体验
- 修复多个页面的JSX语法错误及依赖导入问题,替换部分组件库
- 增加详细的类型定义文件,提升项目类型安全
- 新增超过55个页面及60个API接口,扩展应用功能和服务体系
- 完成全面的样式设计,实现一致的视觉风格和交互体验
2026-04-13 02:26:46 +08:00

115 lines
2.7 KiB
TypeScript

/**
* SSO 单点登录 API
*/
import { request } from '../utils/request'
import type { SSOConfig, SSOSession, SSOLog, SSOProvider, SyncDirection } from '../types/sso'
// ==================== SSO 配置 ====================
/** 获取 SSO 配置 */
export const getSSOConfig = (enterpriseId: number) => {
return request<SSOConfig>({
url: `/enterprise/sso/config/${enterpriseId}`,
method: 'GET',
})
}
/** 创建 SSO 配置 */
export const createSSOConfig = (data: Omit<SSOConfig, 'id' | 'createTime' | 'updateTime'>) => {
return request<SSOConfig>({
url: '/enterprise/sso/config',
method: 'POST',
data,
})
}
/** 更新 SSO 配置 */
export const updateSSOConfig = (data: Partial<SSOConfig> & { id: number }) => {
return request<SSOConfig>({
url: '/enterprise/sso/config',
method: 'PUT',
data,
})
}
/** 删除 SSO 配置 */
export const deleteSSOConfig = (id: number) => {
return request<void>({
url: `/enterprise/sso/config/${id}`,
method: 'DELETE',
})
}
/** 启用/禁用 SSO */
export const toggleSSO = (id: number, enabled: boolean) => {
return request<void>({
url: `/enterprise/sso/config/${id}/toggle`,
method: 'POST',
data: { enabled },
})
}
/** 测试 SSO 连接 */
export const testSSOConnection = (id: number) => {
return request<{ success: boolean; message: string }>({
url: `/enterprise/sso/config/${id}/test`,
method: 'POST',
})
}
/** 生成 SSO 登录链接 */
export const getSSOLoginUrl = (id: number, redirectUri?: string) => {
return request<{ url: string }>({
url: `/enterprise/sso/config/${id}/login-url`,
method: 'GET',
params: { redirectUri },
})
}
// ==================== SSO 会话 ====================
/** 获取 SSO 会话列表 */
export const pageSSOSessions = (params: { enterpriseId: number; page?: number; limit?: number }) => {
return request<{ list: SSOSession[]; total: number }>({
url: '/enterprise/sso/sessions',
method: 'GET',
params,
})
}
/** 强制下线 SSO 会话 */
export const logoutSSOSession = (id: number) => {
return request<void>({
url: `/enterprise/sso/sessions/${id}/logout`,
method: 'POST',
})
}
/** 强制下线所有 SSO 会话 */
export const logoutAllSSOSessions = (enterpriseId: number) => {
return request<void>({
url: `/enterprise/sso/sessions/logout-all`,
method: 'POST',
data: { enterpriseId },
})
}
// ==================== SSO 日志 ====================
/** 获取 SSO 日志列表 */
export const pageSSOLogs = (params: {
enterpriseId: number
page?: number
limit?: number
type?: string
status?: string
timeStart?: string
timeEnd?: string
}) => {
return request<{ list: SSOLog[]; total: number }>({
url: '/enterprise/sso/logs',
method: 'GET',
params,
})
}