Koa2 使用 koa-static 增加文件资源权限的验证

在使用 koa-static 中间件时,发现前台直接GET请求文件资源无法自定义headers(Element Plus Upload组件的限制),所以我将token参数放到URL之后,作为Query参数使用。

后端判断是否是请求文件资源,如果是的话就尝试获取Token,并重新赋值给headers中的authorization参数,具体代码如下:

// app.js中,放到JWT插件前
app.use(async (ctx, next) => {
  let isFileUrl = /^\/\d{14}\/.+\.+/.test(ctx.request.url);
  if (isFileUrl) {
    const { token } = ctx.request.query;
    ctx.headers.authorization = "Bearer " + token || "";
  }
  await next();
});

文件资源URL格式:https://xxx.com/xxx/xxxx.png?token=xxx

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容