2017-12-05 9 views
0

私は現在swagger-ui 2.xを使用しています。これはswagger-ui 2.xで使用している認証です。swagger 3.xのベアラトークンベースの認証

var key = $(this).val(); swaggerUi.api.clientAuthorizations.add( "default"、新しいSwaggerClient.ApiKeyAuthorization( "Authorization"、 "Bearer" + key、 "header"));

現在、私はswagger-uiを最新の3.xバージョンにアップグレードしています。私は上記の3.xで上記を達成する方法を知る必要があります。ベアラトークンベースの認証を使用できますか?

+0

関連:[Swagger仕様(swagger.json)で[承認:ベアラー]をどのように表現できますか(https://stackoverflow.com/q/32910065/113116) – Helen

答えて

1

現時点では、SwaggerUI 3.xはこれを行う正確な方法を持っていないようです。ただし、SwaggerUIBundleを初期化するときにリクエストインターセプタを追加できます。ここでは、必要な処理を行うために承認ヘッダを挿入することができます。

例:

SwaggerUIBundle({ 
 
    spec: spec , 
 
    dom_id: '#someId', 
 
    presets: [ 
 
     SwaggerUIBundle.presets.apis 
 
    ], 
 
    requestInterceptor: function(request) { 
 
     request.headers.Authorization = "Bearer " + key; 
 
     return request; 
 
    } 
 
});

1

requestInterceptorは、あなたが自動的に "それを試してみる" 要求を認証する場合に使用使用することができます。あなたが代わりにユーザーが自分のベアラトークンを入力することができますUIを提供したい場合は、あなたのAPIの定義に対応するセキュリティ定義を追加することができます。この場合

securityDefinitions: 
    bearerAuth: 
    type: apiKey 
    in: header 
    name: Authorization 
    description: Enter your bearer token in the format **Bearer <token>** 

security: 
    - bearerAuth: [] 

は、闊歩UIは、「認可」ボタンが表示されます。ユーザーは自分のベアラトークンを入力するには、このボタンをクリックすることができます:あなたはOpenAPIの2.0(FKA闊歩2.0)を使用している場合だ

Bearer auth in Swagger UI

を。

OpenAPI 3.0 supports Bearer authenticationネイティブに、「ベアラ」接頭辞なしでベアラトークンを入力できるようにします。