NestJS Auth0 项目使用教程
1. 项目目录结构及介绍
本项目是基于 NestJS 框架,使用 Auth0 进行认证的一个示例项目。以下是项目的目录结构及其简要介绍:
nestjs-auth0/
├── .github/ # GitHub 工作流配置
├── .vscode/ # Visual Studio Code 配置
├── src/ # 源代码目录
│ ├── auth/ # 认证模块
│ │ ├── interfaces/ # 接口定义
│ │ ├── jwt.strategy.ts # JwtStrategy 实现
│ │ └── jwt.strategy.spec.ts # JwtStrategy 测试
│ ├── app.controller.ts # 应用控制器
│ ├── app.module.ts # 应用模块
│ └── main.ts # 应用启动文件
├── test/ # 测试目录
├── .editorconfig # 编辑器配置
├── .gitignore # Git 忽略文件
├── .prettierrc # Prettier 配置
├──.env.example # 环境变量示例文件
├── gitlab-ci.yml # GitLab CI 配置
├── LICENSE # 开源协议文件
├── README.md # 项目说明文件
├── codecov.yml # CodeCov 配置
├── nest-cli.json # Nest CLI 配置
├── package-lock.json # 包版本锁定文件
├── package.json # 项目包配置文件
└── tsconfig.json # TypeScript 配置
2. 项目的启动文件介绍
项目的启动文件位于 src/main.ts
,以下是启动文件的主要内容:
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
这段代码首先导入了 NestJS 的 NestFactory
和本项目的主模块 AppModule
,然后在 bootstrap
函数中创建了一个 NestJS 应用实例,并监听 3000 端口。
3. 项目的配置文件介绍
项目的配置文件主要包括 .env.example
文件,用于存储 Auth0 的配置信息。这个文件不应该被提交到版本控制系统中,因此它被添加到了 .gitignore
文件中。
.env.example
文件的内容如下:
AUTH0_DOMAIN={your Auth0 domain}
AUTH0_CLIENT_ID={the Auth0 client ID for your app}
AUTH0_CLIENT_SECRET={the Auth0 client secret for your app}
AUTH0_AUDIENCE={http://localhost:3000 or your production domain accordingly}
在实际部署项目时,你需要根据 Auth0 控制台中的信息替换这些占位符,并创建一个 .env
文件来存储这些敏感信息。项目会通过 @nestjs/config
包来读取这些环境变量。