在使用 koa-static 中間件時,發(fā)現(xiàn)前臺直接GET請求文件資源無法自定義headers(Element Plus Upload組件的限制),所以我將token參數(shù)放到URL之后,作為Query參數(shù)使用。
后端判斷是否是請求文件資源,如果是的話就嘗試獲取Token,并重新賦值給headers中的authorization參數(shù),具體代碼如下:
// 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