diff --git a/src/server/modules/auth/auth.service.ts b/src/server/modules/auth/auth.service.ts index 0e4bf1e..3b0a677 100644 --- a/src/server/modules/auth/auth.service.ts +++ b/src/server/modules/auth/auth.service.ts @@ -1,9 +1,18 @@ import jwt from 'jsonwebtoken'; import { UserService } from '../users/user.service'; import { UserEntity as User } from '../users/user.entity'; +import { DisabledStatus } from '@/share/types'; +import debug from 'debug'; + +const logger = { + info: debug('backend:auth:info'), + error: debug('backend:auth:error') +} const JWT_SECRET = 'your-secret-key'; // 生产环境应使用环境变量 const JWT_EXPIRES_IN = '7d'; // 7天有效期 +const ADMIN_USERNAME = 'admin'; +const ADMIN_PASSWORD = 'admin123'; export class AuthService { private userService: UserService; @@ -12,8 +21,33 @@ export class AuthService { this.userService = userService; } + async ensureAdminExists(): Promise { + try { + let admin = await this.userService.getUserByUsername(ADMIN_USERNAME); + if (!admin) { + logger.info('Admin user not found, creating default admin account'); + admin = await this.userService.createUser({ + username: ADMIN_USERNAME, + password: ADMIN_PASSWORD, + nickname: '系统管理员', + isDisabled: DisabledStatus.ENABLED + }); + logger.info('Default admin account created successfully'); + } + return admin; + } catch (error) { + logger.error('Failed to ensure admin account exists:', error); + throw error; + } + } + async login(username: string, password: string): Promise<{ token: string; user: User }> { try { + // 确保admin用户存在 + if (username === ADMIN_USERNAME) { + await this.ensureAdminExists(); + } + const user = await this.userService.getUserByUsername(username); if (!user) { throw new Error('User not found'); @@ -27,7 +61,7 @@ export class AuthService { const token = this.generateToken(user); return { token, user }; } catch (error) { - console.error('Login error:', error); + logger.error('Login error:', error); throw error; } }