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