问题描述
我已将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页面。单击它时,我看到以下可用的替代方法:
我选择了范围,然后将我重定向到linkedin登录页面。成功使用授权代码重定向回时,我得到:
看着我看到的控制台
swagger-ui-bundle.js:71 POST http:// localhost:5000 / swagger / index.html 404(未找到)
它正在尝试对http:// localhost:5000 / swagger / index.html进行POST调用,但未找到404。
但是,看着这个电话,我确实看到授权代码是从LinkedIn返回的。
为什么这个呼叫一直失败?我试图完全删除option.Oauth2RedirectUrl和我得到相同的结果。我也尝试过将重定向URL设置为http:// localhost:5000 / swagger / index.html,但是,当我被重定向回时,它只是打开一个新标签并且没有代码。
关于如何解决此问题的任何建议?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)