.net-core - OAuth 2.0、Swagger 和 DotNet 核心
问题描述
我正在使用 Auth0 来允许我使用 OAuth 2.0,并编写一个 DotNet Core API 应用程序,一切正常,Auth0 提供了一个很好的使用示例。
但是,我无法让 Swagger 授权,有人管理过这个,如果是这样,怎么办?
解决方案
是的,我也遇到过类似的情况,我的项目是在 net core 3 中完成的,也使用了 Auth0 并实现了 Swagger。我在Startup.cs中的代码如下所示。
//Swagger
services.AddSwaggerGen(c =>
{
// Another options like docs info or xml
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = @"JWT Authorization header using the Bearer scheme.
Enter 'Bearer' [space] and then your token in the text input below.
Example: Bearer adsdflEDc.asdkjhd.aEASDAD",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Scheme = "Bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
},
Scheme = "oauth2",
Name = "Bearer",
In = ParameterLocation.Header
},
new List<string>()
}
});
});
您只需要添加AddSecurityDefinition和AddSecurityRequirement选项,当您运行 API 时,您可以在 Swagger UI 中看到右上角的按钮,当您单击时,您会看到它要求提供授权令牌,该令牌将应用于所有受保护的端点。
推荐阅读
- javascript - 如何通过单击按钮在 object.innerHTML 的帮助下更改 Vue.js 的组件
- python - 单个 HTML/页面中的多个交互式图形
- r - 如何在列表元素之间分配数据框的行
- java - List 的映射值
到具有属性的对象 - sql - 在 SQL Server 中创建视图并使用另一个表进行查找
- javascript - 制作 2
- arrays - 无法使用混合字符串/数字数据填充元胞数组
- java - 如何在 CMD 中打开程序并与 Java 交互
- javascript - 量角器 - 在 For Each 中单击未按预期运行
- python - 绘制平面和正交向量时的错误结果