簡體   English   中英

NodeJS Koa Cookies 設置 JWT 令牌不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM