![](/img/trans.png)
[英]JWT authentication working in postman but authentication token not being set to cookies in browser
[英]NodeJS Koa Cookies to set JWT token not working
在我的后端(NodeJS / JavaScript)中,我想設置一個 HttpOnly cookie 來跟蹤 JWT 刷新令牌。
我正在使用 Koa 與前端進行通信。
如您所見,我使用ctx.cookies.set()
設置了 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 調用響應 (Set-Cookie) 的屏幕截圖
雖然瀏覽器中的 Cookies 部分是空的:瀏覽器屏幕截圖 Cookies
在我設置 cookies 之后我嘗試console.log(ctx.cookies.get("jwt"));
cookies 以確保它有效,但事實證明它是未定義的。 當然,我在設置它們之后並不需要立即使用 cookies。 但是當我調用刷新 api 調用時我需要它。
請不要關閉我的問題,而是在需要時提出其他問題。
也許有人可以向我解釋如何將 JWT 令牌與 cookies 一起使用,也許我沒有理解正確?
謝謝!
我已經嘗試了我在網上找到的所有東西,但包含 Koa 和 cookies 的幫助並不多。所以我真的希望有人能在這里幫助我。
使用console.log(selection[1])
檢查session[1]
索引數據是否正確為 output 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.