Curl-Befehl wird in der Swagger-Benutzeroberfläche als undefiniert mit Token angezeigt.

8

Ich integriere die Swagger-Benutzeroberfläche in mein Projekt. Ich muss das Token übergeben, um eine Anfrage zu stellen.

const mytoken = "heareismytoken";

const ui = SwaggerUIBundle({
    url: "/swagger/v2/swagger.json",
    dom_id: '#swagger-ui',
    deepLinking: true,
    requestInterceptor: function (req) {
        var key = mytoken;

        if (key && key.trim() !== "") {
            req.headers.Authorization = 'Bearer ' + key;
            console.log('Authorized from authKey');
        }
    },
    presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
    ],
    plugins: [
        SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout",
});

Mit dem obigen Code erhalte ich die erfolgreiche Antwort, aber das Problem ist, dass der Befehl curl wie im folgenden Bild als undefiniert angezeigt wirdGeben Sie hier die Bildbeschreibung ein

Wenn ich den folgenden Teil des Codes entfernt habe

    /* 
    requestInterceptor: function (req) {
        var key = mytoken;

        if (key && key.trim() !== "") {
            req.headers.Authorization = 'Bearer ' + key;
            console.log('Authorized from authKey');
        }
    }, */

Der Befehl curl wird angezeigt, aber die Antwort löst den Authentifizierungsfehler aus.

Ich weiß nicht genau, wo ich es vermisse. Wie werden sowohl der CURL-Befehl als auch die Antwort angezeigt?

mkHun
quelle
Können Sie auch den Code posten, in dem er mytokendefiniert ist?
Helen
@Helen Ich habe das Token oben hinzugefügt, nachdem ich die Methode aufgerufen habe.
mkHun

Antworten:

2

Laut der Dokumentation von Swagger UI :

requestInterceptor:

Function=(a => a). MUSS eine Funktion sein. Funktion zum Abfangen von Remote-Definitionen, "Try it out" und OAuth 2.0-Anforderungen. Akzeptiert ein Argument requestInterceptor (request) und muss die geänderte Anforderung oder ein Versprechen zurückgeben, das in die geänderte Anforderung aufgelöst wird.

Im angegebenen Code fehlt die return-Anweisung . Der richtige Code lautet:

requestInterceptor: function (req) {
    var key = mytoken;

    if (key && key.trim() !== "") {
        req.headers.Authorization = 'Bearer ' + key;
        console.log('Authorized from authKey');
    }
    return req; // <--- This line was added
}
Zav
quelle