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

你可能感兴趣的:(Koa2 使用 koa-static 增加文件资源权限的验证)