AuthorizationCode流上的Swagger UI Auth错误

问题描述

我已将SwaggerUI配置为与LinkedIn使用AuthorizationCode流。这是我的配置。

Startup.cs CongfigureServices 方法

services.AddSwaggerGen(options =>
{
   options.SwaggerDoc("v1",new OpenApiInfo
   {
      Title = "My Api",Version = "v1"
   });

   options.AddSecurityDeFinition("OAuth2",new OpenApiSecurityScheme
   {
      Type = SecuritySchemeType.OAuth2,Flows = new OpenApiOAuthFlows
      {
         AuthorizationCode = new OpenApiOAuthFlow
         {
            AuthorizationUrl = new Uri(appSettings.Security.Jwt.AuthUrl),Scopes = new Dictionary<string,string>
            {
               { "r_liteprofile",""  },{ "r_emailaddress","" }
            },}
      }
   });

   options.AddSecurityRequirement(new OpenApiSecurityRequirement
   {
     {
        new OpenApiSecurityScheme
        {
            Reference = new OpenApiReference
            {
                Type = ReferenceType.SecurityScheme,Id = "Bearer"
            },Scheme = "OAuth2",Name = "Authorization",In = ParameterLocation.Header
        },new string [] {}
    }
  });
});
Startup.cs 中的

配置方法

app
.UseSwagger()
.UseSwaggerUI(option =>
{
    option.SwaggerEndpoint($"/swagger/v1/swagger.json","My Api v1");
    option.OAuthClientId("myclientid");
    option.OAuth2RedirectUrl("http://localhost:5000/swagger/oauth2-redirect.html");
});

运行应用程序后,将获得一个带有授权按钮的醒目的UI页面。单击它时,我看到以下可用的替代方法

enter image description here

我选择了范围,然后将我重定向到linkedin登录页面。成功使用授权代码重定向回时,我得到:

身份验证错误错误:未找到

看着我看到的控制台

swagger-ui-bundle.js:71 POST http:// localhost:5000 / swagger / index.html 404(未找到)

它正在尝试对http:// localhost:5000 / swagger / index.html进行POST调用,但未找到404

但是,看着这个电话,我确实看到授权代码是从LinkedIn返回的。

enter image description here

为什么这个呼叫一直失败?我试图完全删除option.Oauth2RedirectUrl和我得到相同的结果。我也尝试过将重定向URL设置为http:// localhost:5000 / swagger / index.html,但是,当我被重定向回时,它只是打开一个标签并且没有代码

关于如何解决此问题的任何建议?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)