如何在WebAPI中为swagger UI传递JWT bearer标记

时间:2016-08-17 16:08:04

标签: asp.net-web-api2 swagger-ui bearer-token

我有一个WebAPI项目,我使用swagger UI来测试它们。现在我通过OAuth2(Auth0)保护了我的Apis,我正在寻求帮助,将承载令牌(或用户名/密码,理想情况下)传递给Api呼叫。请注意我的客户端在Angular JS中,我可以通过客户端访问安全的Apis。只需要找到一种通过Swagger测试Apis的方法。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以将自定义oAuth部分添加到您的Swagger UI,如下所示

enter image description here

然后将Authorization标头参数添加到所有安全的API中,例如

enter image description here

如果令牌API调用成功,则单击所有API的“获取令牌”更新授权参数。

<强>更新

要向Swagger UI添加自定义oAuth部分,请使用以下swagger UI配置注入javascript文件

            swconfig.EnableSwaggerUi(c =>
            {
                c.DocExpansion(DocExpansion.List);
                c.InjectJavaScript(thisAssembly, "Swagger.custom.js");
            });

在document.ready上的custom.js文件中,将自定义html添加到ui以及其他代码来处理令牌API调用。

$(document).ready(function () {
    if ($('#resource_OAuth').length == 0) {
        var html = '<li id="resource_OAuth" class="resource">';
        $('#resources').prepend(html);

        $.get("/Swagger/swagger-oauth-section.html", function (data) {
            $('#resource_OAuth').html(data);
         });
     }
     //code to handle token API calls
 });