@testboard/jwt
简介
@testboard/jwt
是 TestBoard 平台的 JWT 认证模块,基于 NestJS 和 Passport-JWT 构建,提供便捷的 JWT 身份验证功能。
特性
- 与 NestJS 框架无缝集成
- 基于 Passport-JWT 策略实现认证
- 提供全局认证守卫和公共路由装饰器
- 自动从环境变量加载配置
- 完整的 TypeScript 类型支持
安装
pnpm add @testboard/jwt
快速开始
- 在 NestJS 应用程序的主模块中导入
JwtModule
:
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { JwtModule } from '@testboard/jwt';
@Module({
imports: [ConfigModule.forRoot(), JwtModule]
// ...
})
export class AppModule {}
- 在应用程序的任何控制器或路由中使用
JwtAuthGuard
保护端点:
import { Controller, Get, UseGuards } from '@nestjs/common';
import { JwtAuthGuard, Public } from '@testboard/jwt';
@Controller('api')
@UseGuards(JwtAuthGuard) // 应用于整个控制器
export class ApiController {
@Get('protected')
getProtectedData() {
return { message: '这是受保护的数据' };
}
@Public() // 标记为公共路由,无需认证
@Get('public')
getPublicData() {
return { message: '这是公开的数据' };
}
}
- 全局应用 JWT 认证守卫:
import { Module } from '@nestjs/common';
import { APP_GUARD } from '@nestjs/core';
import { JwtAuthGuard } from '@testboard/jwt';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
controllers: [AppController],
providers: [
AppService,
{
provide: APP_GUARD,
useClass: JwtAuthGuard
}
]
})
export class AppModule {}
文档
详细文档请参阅 docs
目录:
配置
在项目的 .env
文件中配置 JWT 密钥:
JWT_SECRET=your-secret-key-here
API 参考
JwtModule
NestJS 模块,提供 JWT 认证功能。
JwtAuthGuard
用于保护路由的认证守卫。
JwtStrategy
实现 Passport JWT 策略的类。
Public()
装饰器,用于标记无需身份验证的公共路由。
贡献
欢迎贡献代码、报告问题或提出建议。
许可证
ISC