图片接口JWT鉴权实现

前言

之前做了个返回图片链接的接口,然后没做授权,然后今天键盘到了,也是用JWT来做接口的权限控制。 然后JTW网上已经有很多文章来说怎么用了,这里就不做多的解释了,如果不懂的可以参考下列链接的 文章。

图片接口文章:ZY知识库 · ZY - 还在愁博客没有图片放? (pljzy.top)

JTW参考:

画星星博客 身份认证入门

🤩我的新键盘🤩

微信图片_20230603225343

接口展示

未授权访问接口

微信截图_20230603221850

可以看到,如果请求的时候没有带上Authorization : Bearer <token>就会报401错误,当然错误信息是通过中间件修改的,下列简单的几行代码就能自己去修改错误信息:

中间件

public class UnauthorizedMiddleware
{
    private readonly RequestDelegate _next;

    public UnauthorizedMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        // 调用下一个中间件
        await _next(context);

        // 检查请求是否未授权
        if (context.Response.StatusCode == 401)
        {
            // 返回未授权错误信息
            context.Response.ContentType = "application/json";
            context.Response.StatusCode = 401;
            await context.Response.WriteAsync("{\"error\":\"抱歉!你没有该接口的请求权限,请联系管理员!\"}");
        }
    }
}

注册中间件

app.UseMiddleware<UnauthorizedMiddleware>();

这样就完成了自定义返回接口未授权信息。

授权接口展示

微信截图_20230603222226

可以看到,让我请求是带上Authorization : Bearer <token>就可以正常访问接口,并返回正常信息了。

获取图片接口地址:

都是GET请求,注意是http不是https

返回原图

http://zy.pljzt.top/Api/Image/GetImageOd

返回给定尺寸图

http://zy.pljzt.top/Api/Image/GetImage?width=500&height=500

获取token请联系本文作者

关注公众号,回复获取Token即可,ToKen免费获取且有效期为30天,到期后可继续获取。

结尾

JWT这个概念已经很多人都知道了,我也就不重复造轮子了,实现JWT其实很简单,只需要一些配置即可使用,在前言部分我也是给出了参考链接,如果对于JWT不是很熟悉的可以去看看。