/** * 认证API相关类型定义 */ import type { UserType } from '@af-mobile-client-vue3/types/auth' /** * 基础响应接口 */ export interface ApiResponse { code: number msg: string data: T } /** * 登录响应数据 */ export interface LoginResponseData { /** 访问令牌 */ access_token: string /** 过期时间(分钟) */ expires_in: number /** 会话密钥 */ session?: string /** 资源权限 */ resources?: any /** 用户信息 */ userInfo?: { id: string | number username: string name: string avatar?: string userType?: UserType openid?: string platformType?: string [key: string]: any } } /** * 微信公众号登录请求 */ export interface WechatOfficialLoginParams { /** 平台类型 */ platformType: 'WECHAT_OFFICIAL' /** 微信授权码 */ platformUserId: string /** 租户名称 */ tenantName: string /** 资源名称,默认为system */ resourceName?: string /** 是否移动端,默认为true */ isMobile?: boolean } /** * 微信小程序登录请求 */ export interface WechatMiniLoginParams { /** 平台类型 */ platformType: 'WECHAT_MINI' /** 微信授权码 */ platformUserId: string /** 租户名称 */ tenantName: string /** 资源名称,默认为system */ resourceName?: string /** 是否移动端,默认为true */ isMobile?: boolean } /** * 第三方应用登录请求 */ export interface ThirdPartyAppLoginParams { /** 平台类型 */ platformType: 'THIRD_PARTY_APP' /** 第三方授权码 */ platformUserId: string /** 租户名称 */ tenantName: string /** 资源名称,默认为system */ resourceName?: string /** 是否移动端,默认为false */ isMobile?: boolean } /** * 外部用户登录参数联合类型 */ export type ExternalLoginParams = | WechatOfficialLoginParams | WechatMiniLoginParams | ThirdPartyAppLoginParams /** * 传统用户名密码登录请求 */ export interface UsernamePasswordLoginParams { /** 用户名 */ username: string /** 密码 */ password: string /** 资源名称 */ resourceName: string /** 是否移动端 */ isMobile?: boolean } /** * 统一认证登录请求 */ export interface UnifiedLoginParams { /** 统一认证码 */ unifiedCode: string /** 租户名称 */ tenantName: string /** 登录模式 */ loginMode: string /** 资源名称 */ resourceName: string /** 是否移动端 */ isMobile?: boolean } /** * 所有登录参数的联合类型 */ export type LoginParams = | UsernamePasswordLoginParams | UnifiedLoginParams | ExternalLoginParams /** * 微信授权回调参数 */ export interface WechatCallbackParams { /** 授权码 */ code?: string /** 状态参数,通常包含租户名称 */ state?: string /** 租户名称 */ tenantName?: string /** 错误信息 */ error?: string /** 错误描述 */ error_description?: string } /** * Token刷新请求 */ export interface RefreshTokenParams { /** 刷新令牌 */ refresh_token?: string } /** * 登出请求(通常不需要参数) */ export interface LogoutParams { // 预留 } /** * 用户信息获取响应 */ export interface UserInfoResponse { /** 用户ID */ id: string | number /** 用户名 */ username: string /** 显示名称 */ name: string /** 头像URL */ avatar?: string /** 用户类型 */ userType?: UserType /** 权限列表 */ permissions?: string[] /** 角色列表 */ roles?: Array<{ id: string, operation: string[] }> /** 部门信息 */ department?: { id: string name: string } /** 组织信息 */ organization?: { id: string name: string } /** 外部用户特有字段 */ openid?: string /** 平台类型 */ platformType?: string /** 来源渠道 */ sourceChannel?: string }