import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { AuthController } from './auth.controller.js'; import { AuthService } from './auth.service.js'; import { AuditLogsModule } from '../audit-logs/audit-logs.module.js'; import { LoginLogsModule } from '../login-logs/login-logs.module.js'; const jwtSecret = process.env.JWT_SECRET; if (!jwtSecret) { throw new Error('JWT_SECRET 环境变量未配置,拒绝启动'); } if (process.env.NODE_ENV === 'production' && (jwtSecret === 'dev-secret-change-me' || jwtSecret.length < 32)) { throw new Error('生产环境 JWT_SECRET 过弱,请配置至少 32 位强密钥'); } @Module({ imports: [ JwtModule.register({ global: true, secret: jwtSecret, signOptions: { expiresIn: Number(process.env.JWT_ACCESS_TTL ?? 7200) }, }), AuditLogsModule, LoginLogsModule, ], controllers: [AuthController], providers: [AuthService], exports: [AuthService], }) export class AuthModule {}