- 后端:基于 node-oidc-provider 实现 OIDC Provider - 支持 authorization_code、refresh_token、client_credentials 授权类型 - Redis adapter 存储会话数据,Prisma adapter 存储持久化数据 - 客户端管理 CRUD API(创建、更新、删除、重新生成密钥) - 交互 API(登录、授权确认、中止) - 第一方应用自动跳过授权确认页面 - 使用 cuid2 生成客户端 ID - 前端:OIDC 客户端管理界面 - 客户端列表表格(支持分页、排序) - 创建/编辑弹窗(支持所有 OIDC 配置字段) - OIDC 交互页面(登录表单、授权确认表单) - 共享类型:添加 OIDC 相关 TypeScript 类型定义 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { ConfigModule } from '@nestjs/config';
|
|
|
|
import { AppController } from './app.controller';
|
|
import { AppService } from './app.service';
|
|
import { AuthModule } from './auth/auth.module';
|
|
import { ClassModule } from './class/class.module';
|
|
import { CaptchaModule } from './common/captcha/captcha.module';
|
|
import { CryptoModule } from './common/crypto/crypto.module';
|
|
import { EmailCodeModule } from './common/email-code/email-code.module';
|
|
import { MailModule } from './common/mail/mail.module';
|
|
import { RedisModule } from './common/redis/redis.module';
|
|
import { StorageModule } from './common/storage/storage.module';
|
|
import { FileModule } from './file/file.module';
|
|
import { OidcModule } from './oidc/oidc.module';
|
|
import { PermissionModule } from './permission/permission.module';
|
|
import { PrismaModule } from './prisma/prisma.module';
|
|
import { StudentModule } from './student/student.module';
|
|
import { TeacherModule } from './teacher/teacher.module';
|
|
import { UserModule } from './user/user.module';
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule.forRoot({
|
|
isGlobal: true,
|
|
// 优先级:本地 > 应用级
|
|
envFilePath: ['.env.local', '.env'],
|
|
}),
|
|
PrismaModule,
|
|
RedisModule,
|
|
CryptoModule,
|
|
CaptchaModule,
|
|
MailModule,
|
|
EmailCodeModule,
|
|
StorageModule,
|
|
FileModule,
|
|
AuthModule,
|
|
UserModule,
|
|
PermissionModule,
|
|
OidcModule,
|
|
// 教学管理模块
|
|
TeacherModule,
|
|
ClassModule,
|
|
StudentModule,
|
|
],
|
|
controllers: [AppController],
|
|
providers: [AppService],
|
|
})
|
|
export class AppModule {}
|