| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // 认证模式类型
- export type AuthMode = 'single' | 'double'
- // 单Token响应类型
- export interface ISingleTokenRes {
- token: string
- expiresIn: number // 有效期(秒)
- }
- // 双Token响应类型
- export interface IDoubleTokenRes {
- accessToken: string
- refreshToken: string
- accessExpiresIn: number // 访问令牌有效期(秒)
- refreshExpiresIn: number // 刷新令牌有效期(秒)
- }
- /**
- * 登录返回的信息,其实就是 token 信息
- */
- export type IAuthLoginRes = ISingleTokenRes | IDoubleTokenRes
- /**
- * 用户信息
- */
- export interface IUserInfoRes {
- userId: number
- username: string
- nickname: string
- avatar?: string
- [key: string]: any // 允许其他扩展字段
- }
- // 认证存储数据结构
- export interface AuthStorage {
- mode: AuthMode
- tokens: ISingleTokenRes | IDoubleTokenRes
- userInfo?: IUserInfoRes
- loginTime: number // 登录时间戳
- }
- /**
- * 获取验证码
- */
- export interface ICaptcha {
- captchaEnabled: boolean
- uuid: string
- img: string
- }
- /**
- * 上传成功的信息
- */
- export interface IUploadSuccessInfo {
- fileId: number
- originalName: string
- fileName: string
- storagePath: string
- fileHash: string
- fileType: string
- fileBusinessType: string
- fileSize: number
- }
- /**
- * 更新用户信息
- */
- export interface IUpdateInfo {
- id: number
- name: string
- sex: string
- }
- /**
- * 更新用户信息
- */
- export interface IUpdatePassword {
- id: number
- oldPassword: string
- newPassword: string
- confirmPassword: string
- }
- /**
- * 判断是否为单Token响应
- * @param tokenRes 登录响应数据
- * @returns 是否为单Token响应
- */
- export function isSingleTokenRes(tokenRes: IAuthLoginRes | string): tokenRes is ISingleTokenRes {
- // 如果是字符串,不是单token对象
- if (typeof tokenRes === 'string') {
- return false
- }
- return 'token' in tokenRes && !('refreshToken' in tokenRes)
- }
- /**
- * 判断是否为双Token响应
- * @param tokenRes 登录响应数据
- * @returns 是否为双Token响应
- */
- export function isDoubleTokenRes(tokenRes: IAuthLoginRes | string): tokenRes is IDoubleTokenRes {
- // 如果是字符串,不是双token对象
- if (typeof tokenRes === 'string') {
- return false
- }
- return 'accessToken' in tokenRes && 'refreshToken' in tokenRes
- }
|