/** * 用户认证业务模块 * * 功能描述: * - 整合所有用户认证相关功能 * - 用户登录、注册、密码管理 * - GitHub OAuth集成 * - 邮箱验证功能 * - JWT令牌管理和验证 * * @author kiro-ai * @version 1.0.0 * @since 2025-12-24 */ import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { LoginController } from './controllers/login.controller'; import { LoginService } from './services/login.service'; import { LoginCoreModule } from '../../core/login_core/login_core.module'; import { ZulipCoreModule } from '../../core/zulip/zulip-core.module'; import { ZulipAccountsModule } from '../../core/db/zulip_accounts/zulip_accounts.module'; import { UsersModule } from '../../core/db/users/users.module'; @Module({ imports: [ LoginCoreModule, ZulipCoreModule, ZulipAccountsModule.forRoot(), UsersModule, JwtModule.registerAsync({ imports: [ConfigModule], useFactory: (configService: ConfigService) => { const expiresIn = configService.get('JWT_EXPIRES_IN', '7d'); return { secret: configService.get('JWT_SECRET'), signOptions: { expiresIn: expiresIn as any, // JWT库支持字符串格式如 '7d' issuer: 'whale-town', audience: 'whale-town-users', }, }; }, inject: [ConfigService], }), ], controllers: [LoginController], providers: [ LoginService, ], exports: [LoginService, JwtModule], }) export class AuthModule {}