GOOGLE ADS

Dienstag, 26. April 2022

Ist es möglich, die Authentifizierung für den Zugriff auf den Swagger Explorer von NestJS hinzuzufügen

Ich verwende derzeit Swagger in meinem NestJS-Projekt und habe den Explorer aktiviert:

inmain.js

const options = new DocumentBuilder()
.setTitle('My App')
.setSchemes('https')
.setDescription('My App API documentation')
.setVersion('1.0')
.build()
const document = SwaggerModule.createDocument(app, options)
SwaggerModule.setup('docs', app, document, {
customSiteTitle: 'My App documentation',
})

Damit ist der Explorer zugänglich /docs, was ich erwartet hatte. Aber ich habe mich gefragt, ob es möglich ist, dem Explorer eine Authentifizierungsebene hinzuzufügen, sodass nur bestimmte Anforderungen akzeptiert werden.

Ich möchte diesen Explorer in der Produktion zugänglich machen, aber nur für authentifizierte Benutzer.

Danke im Voraus:)


Lösung des Problems

Sichern des Zugriffs auf Ihren Swagger mit HTTP Basic Auth unter Verwendung von NestJS mit Express

Führen Sie zuerst aus npm i express-basic-authund fügen Sie Folgendes zu Ihrem hinzu main.{ts,js}:

// add import
import * as basicAuth from 'express-basic-auth';
//...
// Sometime after NestFactory add this to add HTTP Basic Auth
app.use(
['/docs', '/docs-json'],
basicAuth({
challenge: true,
users: {
yourUserName: 'p4ssw0rd',
},
}),
);
// Your code
const options = new DocumentBuilder()
.setTitle('My App')
.setSchemes('https')
.setDescription('My App API documentation')
.setVersion('1.0')
.build()
const document = SwaggerModule.createDocument(app, options)
SwaggerModule.setup('docs', app, document, {
customSiteTitle: 'My App documentation',
})
//...

Wenn dies eingerichtet ist, werden Sie auf jeder /docsRoute mit einer HTTP Basic Auth-Eingabeaufforderung aufgefordert. Wir müssen auch /docs-jsonexplizit benennen, um die generierte JSON OpenAPI-Datei zu schützen.

Sie sollten die Anmeldeinformationen nicht in Ihrem Code/Repository ablegen, sondern in Ihrem .envund über den ConfigService zugreifen.

Ich habe diese Lösung zuerst hier gesehen.

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...