NodeJS Koa Cookies设置JWT令牌不工作



在我的后端(NodeJS/JavaScript),我想设置一个HttpOnly cookie来跟踪JWT刷新令牌。

我正在使用Koa与前端通信。

正如您所看到的,我用ctx.cookies.set()设置cookie,这似乎在浏览器检查器中工作。但不是当我试图检索cookie记录它与console.log(ctx.cookies.get("jwt"));,那么它是未定义的。

代码:

const login = async (ctx) => {
const { email, password } = ctx.request.body;
const session = await userService.login(email, password);
ctx.body = session[0];
ctx.cookies.set("jwt", session[1], {
httpOnly: true,
});
console.log(ctx.cookies.get("jwt")); // is undefined
};
login.validationScheme = {
body: {
email: Joi.string().email(),
password: Joi.string(),
},
};

我想在

中使用cookie的刷新调用
const refresh = async (ctx) => {
const session = await userService.refresh(ctx.cookies.get("jwt")); // is undefined
ctx.body = session;
};

浏览器:
set - cookie在浏览器中设置正确:浏览器api-call response (Set-Cookie)的截图
cookie -section在浏览器是空的:浏览器cookie截图

在我设置cookie后,我尝试console.log(ctx.cookies.get("jwt"));cookie以确保它有效,但事实证明它是未定义的。当然,我不需要饼干一摆好就马上要。但是当我调用refresh api调用时,我需要它

请不要结束我的问题,如果你需要,可以提出其他问题。

也许有人可以向我解释如何使用JWT令牌cookie更多,也许我没有得到它的权利?

谢谢!

我已经尝试了我在网上找到的所有东西,但没有太多的帮助包含Koa和饼干。所以我真的希望有人能在这里帮助我。

检查console.log(selection[1])是否能正常输出session[1]索引数据

最新更新