【发布时间】:2022-01-17 16:42:55
【问题描述】:
有没有人知道这种问题: 当尝试在任何函数的处理程序中包含中间件时,中间件必须包含“之前”、“之后”、“onError”中的至少一个键 - 在无服务器离线(节点 js)中。在这种情况下:我创建了一个 lambda 函数和一个 middy 中间件(verifyToken),我希望该中间件将它放在我的 lambda 函数处理程序上,但它一直向我显示我之前提到的消息;即使我的中间件已经有这些关键字。 这是我的中间件:
export const verifyToken = async function verifyToken(event, context) {
return {
before: async ({ event }, next) => {
const headers = JSON.parse(event.headers);
const bearerHeader = headers.authorization;
if (typeof bearerHeader !== "undefined") {
const bearer = bearerHeader.split(" ");
const token = bearer[1];
const verify = util.promisify(jwt.verify);
const data = await verify(token, process.env.TOKEN_SECRET);
event.user = data.user;
} else {
throw new Error("");
}
},
onError: () => {
return {
statusCode: 401,
body: JSON.stringify({
message: "No Token Present",
}),
};
},
};
};
提前谢谢你。
【问题讨论】:
标签: javascript lambda serverless-framework serverless