这个主要是为了方便使用swagger时,能更好的带入我们的token。
ps:如果使用其他第三方api工具(apipost、postman等)则不需要。
(当然,不用不能没有,是吧)
1、在AddSwaggerGen内添加代码
var itemName = "plateau.poetize.blog.webapi";//把jwt加入到swagger中c.AddSecurityDefinition(itemName, new OpenApiSecurityScheme{Description = "请输入token,格式为 【Bearer JWT字符串】(注意中间必须有空格)",Name = "Authorization",//jwt默认的参数名称In = ParameterLocation.Header,//jwt默认放入请求头中Type = SecuritySchemeType.ApiKey,BearerFormat = "JWT",Scheme = "Bearer"});//swagger遵守jwt授权协议c.AddSecurityRequirement(new OpenApiSecurityRequirement{{new OpenApiSecurityScheme {Reference = new OpenApiReference{Type = ReferenceType.SecurityScheme,Id = itemName}},new string [] {}}});
2、运行后:
运行后,接口这就有了一个按钮,点击就会弹出一个可输入token的界面,在输入框中输入需要的格式即可。
3、测试权限:
/// <summary>/// 测试权限1(需要token)/// </summary>/// <returns></returns>[Authorize][HttpGet]public string Test(){return "ok! 1";}/// <summary>/// 测试权限2 (无权限要求)/// </summary>/// <returns></returns>[AllowAnonymous][HttpGet]public string Test2(){return "ok! 2";}
其中标注了 [Authorize]的代表需要token,[AllowAnonymous]则不需要
记得注入服务:(在app.MapControllers();之前的位置)
app.UseAuthentication();
app.UseAuthorization();
4、测试。(这里已测试过了,已通过。就不在贴图了,去写下一篇博客了,有问题可以评论联系我哦)
5、拓展:
5.1、是否可以加登录才可以查看这些列表呢?
5.2、屏蔽特定的接口或者控制器(实际可以用,但是不可见)