Files
wwjcloud-nest-v1/wwjcloud/src/common/auth/auth.module.ts
万物街 f30d64e6cc feat: 初始化 WWJ Cloud 企业级框架项目
- 后端:基于 NestJS 的分层架构设计
- 前端:基于 VbenAdmin + Element Plus 的管理系统
- 支持 SaaS + 独立版双架构模式
- 完整的用户权限管理系统
- 系统设置、文件上传、通知等核心功能
- 多租户支持和插件化扩展架构
2025-08-23 13:20:01 +08:00

58 lines
1.8 KiB
TypeScript

import { Module } from '@nestjs/common';
import { JwtModule } from '@nestjs/jwt';
import { PassportModule } from '@nestjs/passport';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { AuthController } from './auth.controller';
import { UserPermissionController } from './user-permission.controller';
import { AuthService } from './auth.service';
import { PermissionService } from './services/permission.service';
import { JwtStrategy } from './strategies/jwt.strategy';
import { LocalStrategy } from './strategies/local.strategy';
import { JwtAuthGuard } from './guards/jwt-auth.guard';
import { LocalAuthGuard } from './guards/local-auth.guard';
import { RolesGuard } from './guards/roles.guard';
import { GlobalAuthGuard } from './guards/global-auth.guard';
import { MemberModule } from '../member/member.module';
import { AdminModule } from '../admin/admin.module';
import { RbacModule } from '../rbac/rbac.module';
@Module({
imports: [
PassportModule.register({ defaultStrategy: 'jwt' }),
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
secret: configService.get<string>('JWT_SECRET', 'wwjcloud-secret-key'),
signOptions: {
expiresIn: configService.get<string>('JWT_EXPIRES_IN', '1h'),
},
}),
inject: [ConfigService],
}),
MemberModule,
AdminModule,
RbacModule,
],
controllers: [AuthController, UserPermissionController],
providers: [
AuthService,
PermissionService,
JwtStrategy,
LocalStrategy,
JwtAuthGuard,
LocalAuthGuard,
RolesGuard,
GlobalAuthGuard,
],
exports: [
AuthService,
PermissionService,
JwtAuthGuard,
LocalAuthGuard,
RolesGuard,
GlobalAuthGuard,
JwtModule,
PassportModule,
],
})
export class AuthModule {}