• NestJS Logo
    NestJS 中文文档
    v10.0.0
    • 介绍
    • 快速上手
    • 控制器
    • 提供者
    • 模块
    • 中间件
    • 异常过滤器
    • 管道
    • 守卫
    • 拦截器
    • 自定义装饰器
    • 自定义提供者
    • 异步提供者
    • 动态模块
    • 依赖注入作用域
    • 循环依赖
    • 模块引用
    • 懒加载模块
    • 执行上下文
    • 生命周期事件
    • 发现服务
    • 跨平台无关性
    • 测试
  • 迁移指南
  • API 参考
  • 官方课程
  1. 文档
  2. OpenAPI
  3. 安全性

英文原版
操作
映射类型

安全性

你可以使用 @ApiSecurity() 装饰器,为特定的控制器或路由处理函数指定所需的安全机制。

@ApiSecurity('basic')
@Controller('cats')
export class CatsController {}

在使用此装饰器前,你需要先通过 DocumentBuilder 添加对应的安全定义:

const options = new DocumentBuilder().addSecurity('basic', {
  type: 'http',
  scheme: 'basic',
})

幸运的是,一些常见的身份验证方案(如 basic 和 bearer)是内置的,你无需像上面那样手动定义。

基础身份验证

要启用基础身份验证,可以使用 @ApiBasicAuth() 装饰器。

@ApiBasicAuth()
@Controller('cats')
export class CatsController {}

然后,通过 DocumentBuilder 添加相应的定义:

const options = new DocumentBuilder().addBasicAuth()

Bearer 身份验证

要启用 Bearer 身份验证,可以使用 @ApiBearerAuth() 装饰器。

@ApiBearerAuth()
@Controller('cats')
export class CatsController {}

然后,通过 DocumentBuilder 添加相应的定义:

const options = new DocumentBuilder().addBearerAuth()

OAuth2 身份验证

要启用 OAuth2,可以使用 @ApiOAuth2() 装饰器,并传入所需的作用域(scopes)。

@ApiOAuth2(['pets:write'])
@Controller('cats')
export class CatsController {}

然后,通过 DocumentBuilder 添加相应的定义:

const options = new DocumentBuilder().addOAuth2()

Cookie 身份验证

要启用 Cookie 身份验证,可以使用 @ApiCookieAuth() 装饰器。

@ApiCookieAuth()
@Controller('cats')
export class CatsController {}

然后,通过 DocumentBuilder 添加相应的定义:

const options = new DocumentBuilder().addCookieAuth('optional-session-id')