Swagger 仅重定向到 HTTPS,而其他端点则在 HTTP 上工作 - NestJS

问题描述 投票:0回答:1

我在 Windows Server 环境中运行并由 PM2 管理的 NestJS 服务器上遇到了 Swagger 接口的特殊问题。虽然其他端点在 HTTP 上工作,但 Swagger 接口只能通过 HTTPS 访问。我通过 VPN 访问服务器,并且由于不需要 HTTPS,因此我希望通过 HTTP 访问 Swagger。

我已在 NestJS 应用程序的 main.ts 文件中配置了 Swagger 设置。

我不确定我需要做什么或者我可能哪里出了问题。预先感谢您的帮助!

我在 NestJS 服务器上遇到 Swagger 界面问题。虽然通过 localhost 访问时它工作得很好,但通过 VPN 网络访问时却无法加载。其他端点通过 VPN 可以正常工作,只有 Swagger 似乎存在此问题。

这是我的 main.ts:

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { ConfigService } from '@nestjs/config';
import helmet from 'helmet';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  const configService = app.get(ConfigService);

  // security
  app.enableCors({
    origin: configService.get('CORS_ORIGIN'),
    credentials: true,
  });
  app.use(helmet());

  const swaggerConfig = new DocumentBuilder()
    .setTitle('Logo Api')
    .setDescription('TCS Logo Api Documentation')
    .setVersion('1.0.0')
    .addBearerAuth(
      { 
        description: `Please enter token in following format: Bearer <JWT>`,
        name: 'Authorization',
        bearerFormat: 'Bearer',
        scheme: 'Bearer',
        type: 'http',
        in: 'Header'
      },
      'access-token',
    )
    .build()
  const swaggerDocument = SwaggerModule.createDocument(app, swaggerConfig);
  SwaggerModule.setup('api', app, swaggerDocument);

  await app.listen(configService.get('PORT'));
}
bootstrap();

And here is my browser result

typescript nestjs swagger swagger-ui
1个回答
0
投票

基于此答案,您需要在初始化Swagger之后初始化头盔,如下所示:

const config = new DocumentBuilder() .setTitle('SISTEM INFORMASI MANAJEMEN KEPEGAWAIAN') .setDescription( 'API yang dipergunakan oleh web app SIMPEG dan mobile app ASIK', ) .setVersion('1.0') .addBearerAuth() .build(); const document = SwaggerModule.createDocument(app, config); SwaggerModule.setup('docs', app, document); app.use(helmet()); await app.listen(3000);
    
© www.soinside.com 2019 - 2024. All rights reserved.