【个人博客搭建】(11)swagger添加jwt信息

这个主要是为了方便使用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、屏蔽特定的接口或者控制器(实际可以用,但是不可见)

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值