- 新增 @nestjs/jwt 和 jsonwebtoken 依赖包 - 实现 refreshAccessToken 方法支持令牌续期 - 添加 RefreshTokenDto 和 RefreshTokenResponseDto - 新增 /auth/refresh-token 接口 - 完善令牌刷新的限流和超时控制 - 增加相关单元测试覆盖 - 优化错误处理和日志记录
54 lines
1.6 KiB
TypeScript
54 lines
1.6 KiB
TypeScript
/**
|
|
* 用户认证业务模块
|
|
*
|
|
* 功能描述:
|
|
* - 整合所有用户认证相关功能
|
|
* - 用户登录、注册、密码管理
|
|
* - 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<string>('JWT_EXPIRES_IN', '7d');
|
|
return {
|
|
secret: configService.get<string>('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 {} |