在我的后端(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]
索引数据