c# - OpenID 的 Swashbuckle 问题
问题描述
我在 ASP.NET Core 上配置了 Swashbuckle (5.0.0-rc2) 以与我的 OpenID 服务器 (Openiddict) 一起使用,但 Swagger 没有显示任何可用的授权。只有一个空的模态。
这是我在 swagger 上设置 OpenID 的片段
services.AddSwaggerGen(c =>
{
//... omitted for brevity
//baseAccountsUrl is "https://localhost:5401"
c.AddSecurityDefinition("AccountsOpenID", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OpenIdConnect,
OpenIdConnectUrl = new Uri($"{baseAccountsUrl}/.well-known/openid-configuration")
});
}
如果我在到达这里之前登录,则每个操作都可以正常工作,否则每个方法都将被重定向到登录并显示在服务器响应中。
如果我使用 OAuth2 而不是 OpenID 和密码流(在 Openiddict 上以这种方式配置)并且没有在浏览器中登录,它也不成功。
我究竟做错了什么?
解决方案
Swagger UI v. 3.38.0 中添加了对 OpenID Connect Discovery 的支持。Swashbuckle 需要将捆绑的 Swagger UI 更新到最新版本:
https ://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/1241
推荐阅读
- dialogflow-es - Intent 与 Google 适配器发生冲突
- impala - 使用 -f 运行 impla 查询给我错误
- github - 我想在 GitHub 上展示我解决的 katas
- classification - 将点样本分割成不同的路径
- python - 如何通过 cv2 处理许多灰度图像(超过 1 个通道)?
- sql - Bigquery 中的 Unpivot、pivot 和 Count 值
- scala - 在 JVM 关闭时删除 Google Pub Sub 订阅时出现非法访问错误
- python - RGB LED MATRIX - 滚动一行文字 其他 静态
- npgsql - 使用 Npgsql 创建简单的搜索 c#
- python - 如何在 python asciImatics 中使用 cross_hairs 移动到下一个场景?