150 lines
3.4 KiB
TypeScript
150 lines
3.4 KiB
TypeScript
|
|
/**
|
|||
|
|
* 用户角色类型
|
|||
|
|
*/
|
|||
|
|
export type UserRole = 'admin' | 'superadmin';
|
|||
|
|
/**
|
|||
|
|
* 用户信息接口
|
|||
|
|
*/
|
|||
|
|
export interface User {
|
|||
|
|
id: string;
|
|||
|
|
username: string;
|
|||
|
|
passwordHash: string;
|
|||
|
|
role?: UserRole;
|
|||
|
|
createdAt: Date;
|
|||
|
|
lastLoginAt?: Date;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 登录结果接口
|
|||
|
|
*/
|
|||
|
|
export interface LoginResult {
|
|||
|
|
success: boolean;
|
|||
|
|
message?: string;
|
|||
|
|
token?: string;
|
|||
|
|
user?: {
|
|||
|
|
id: string;
|
|||
|
|
username: string;
|
|||
|
|
role?: UserRole;
|
|||
|
|
lastLoginAt?: Date;
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* Token验证结果接口
|
|||
|
|
*/
|
|||
|
|
export interface TokenVerifyResult {
|
|||
|
|
valid: boolean;
|
|||
|
|
user?: {
|
|||
|
|
id: string;
|
|||
|
|
username: string;
|
|||
|
|
role?: UserRole;
|
|||
|
|
};
|
|||
|
|
error?: string;
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 认证服务
|
|||
|
|
*/
|
|||
|
|
export declare class AuthService {
|
|||
|
|
private logger;
|
|||
|
|
private readonly JWT_SECRET;
|
|||
|
|
private readonly JWT_EXPIRES_IN;
|
|||
|
|
private readonly DEFAULT_USERNAME;
|
|||
|
|
private readonly DEFAULT_PASSWORD;
|
|||
|
|
private users;
|
|||
|
|
private readonly INIT_LOCK_FILE;
|
|||
|
|
private readonly USER_DATA_FILE;
|
|||
|
|
private readonly SUPERADMIN_USERNAME;
|
|||
|
|
private readonly SUPERADMIN_PASSWORD;
|
|||
|
|
constructor();
|
|||
|
|
/**
|
|||
|
|
* 初始化认证服务(异步)
|
|||
|
|
* 必须在创建 AuthService 实例后调用此方法
|
|||
|
|
*/
|
|||
|
|
initialize(): Promise<void>;
|
|||
|
|
/**
|
|||
|
|
* 初始化或恢复用户数据
|
|||
|
|
*/
|
|||
|
|
private initializeOrRestoreUsers;
|
|||
|
|
/**
|
|||
|
|
* 初始化默认管理员用户
|
|||
|
|
*/
|
|||
|
|
private initializeDefaultUser;
|
|||
|
|
/**
|
|||
|
|
* 初始化超级管理员账号
|
|||
|
|
*/
|
|||
|
|
private initializeSuperAdmin;
|
|||
|
|
/**
|
|||
|
|
* 保存用户数据到文件
|
|||
|
|
*/
|
|||
|
|
private saveUsersToFile;
|
|||
|
|
/**
|
|||
|
|
* 从文件加载用户数据
|
|||
|
|
*/
|
|||
|
|
private loadUsersFromFile;
|
|||
|
|
/**
|
|||
|
|
* 用户登录
|
|||
|
|
*/
|
|||
|
|
login(username: string, password: string): Promise<LoginResult>;
|
|||
|
|
/**
|
|||
|
|
* 验证JWT token
|
|||
|
|
*/
|
|||
|
|
verifyToken(token: string): TokenVerifyResult;
|
|||
|
|
/**
|
|||
|
|
* 获取用户信息
|
|||
|
|
*/
|
|||
|
|
getUserByUsername(username: string): User | undefined;
|
|||
|
|
/**
|
|||
|
|
* 创建新用户(用于扩展功能)
|
|||
|
|
*/
|
|||
|
|
createUser(username: string, password: string): Promise<boolean>;
|
|||
|
|
/**
|
|||
|
|
* 更改用户密码(用于扩展功能)
|
|||
|
|
*/
|
|||
|
|
changePassword(username: string, oldPassword: string, newPassword: string): Promise<boolean>;
|
|||
|
|
/**
|
|||
|
|
* 获取所有用户(用于管理功能)
|
|||
|
|
*/
|
|||
|
|
getAllUsers(): Array<{
|
|||
|
|
id: string;
|
|||
|
|
username: string;
|
|||
|
|
role: UserRole;
|
|||
|
|
createdAt: Date;
|
|||
|
|
lastLoginAt?: Date;
|
|||
|
|
}>;
|
|||
|
|
/**
|
|||
|
|
* 检查用户是否为超级管理员
|
|||
|
|
*/
|
|||
|
|
isSuperAdmin(username: string): boolean;
|
|||
|
|
/**
|
|||
|
|
* 获取超级管理员用户名
|
|||
|
|
*/
|
|||
|
|
getSuperAdminUsername(): string;
|
|||
|
|
/**
|
|||
|
|
* 检查系统是否已初始化(通过检查锁文件)
|
|||
|
|
*/
|
|||
|
|
isInitialized(): boolean;
|
|||
|
|
/**
|
|||
|
|
* 获取初始化锁文件路径
|
|||
|
|
*/
|
|||
|
|
getInitLockFilePath(): string;
|
|||
|
|
/**
|
|||
|
|
* 生成唯一标识符
|
|||
|
|
*/
|
|||
|
|
private generateUniqueId;
|
|||
|
|
/**
|
|||
|
|
* 获取初始化信息(如果已初始化)
|
|||
|
|
*/
|
|||
|
|
getInitializationInfo(): any;
|
|||
|
|
/**
|
|||
|
|
* 获取系统唯一标识符
|
|||
|
|
*/
|
|||
|
|
getSystemUniqueId(): string | null;
|
|||
|
|
/**
|
|||
|
|
* 初始化系统,设置管理员账号
|
|||
|
|
*/
|
|||
|
|
initializeSystem(username: string, password: string): Promise<{
|
|||
|
|
success: boolean;
|
|||
|
|
message: string;
|
|||
|
|
uniqueId?: string;
|
|||
|
|
}>;
|
|||
|
|
}
|
|||
|
|
export default AuthService;
|
|||
|
|
//# sourceMappingURL=AuthService.d.ts.map
|