Swagger UIでトークンを使用すると未定義として表示されるCurlコマンド。


8

プロジェクトにSwagger UIを統合しています。リクエストを行うにはトークンを渡す必要があります。

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",
});

上記のコードで成功した応答を取得していますが、問題はcurlコマンドが以下の画像のように未定義として表示されていることですここに画像の説明を入力してください

コードの次の部分を削除した場合

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

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

curlコマンドは表示されていますが、応答が認証エラーをスローしています。

私はそれがどこにないのか正確にはわかりません。CURLコマンドと応答の両方を表示する方法。


mytokenが定義されているコードも投稿できますか?
ヘレン

@Helenトークンを上に追加した後、メソッドを呼び出します。
mkHun

回答:


2

Swagger UIのドキュメントによると:

requestInterceptor:

Function=(a => a)。関数でなければなりません。リモート定義、「試してみる」、OAuth 2.0リクエストをインターセプトする機能。1つの引数requestInterceptor(request)受け入れ、変更されたリクエスト、または変更されたリクエストを解決するPromiseを返す必要があります。

提供されたコードでreturnステートメントが欠落しています。正しいコードは次のとおりです。

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
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.