• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

res.setHeader vs res.cookie

22.11.26 22:33 작성 조회수 1.25k

0

 res.setHeader("Set-Cookie", [
    "mycookie=test; HttpOnly; SameSite=Lax; Path=/",
  ]);

res.setHeader로 Set-Cookie를 보내면 브라우저에 cookie가 저장됩니다.

  res.cookie("mycookie", encodeURIComponent("test"), {
    expires: new Date(),
    httpOnly: true,
    sameSite: "lax",
    path: "/",
  });

cookieParser를 사용하면 Set-Cookie가 header에 들어가기는 하지만 브라우저엔 저장되지 않았습니다.

저장시키려면 어떻게 해야 하나요?

답변 3

·

답변을 작성해보세요.

1

박기자님의 프로필

박기자

2022.12.14

expires: new Date(Date.now() + 900000),

와 같이 하시거나 expires를 없애서 expires를 session으로 바꾸시면 됩니다

그렇네요.. 만료시간이 쿠키생성시간이었네요 ㅎㅎ

0

에러는 따로 없는 것 같습니다.

"dependencies": {
    "cookie-parser": "^1.4.6",
    "express": "^4.18.2",
    "express-session": "^1.17.3"
  }

 

지금 제대로 설정된 것 아닌가요?

위와 같이 작성하였는데 아무 것도 안뜹니다.

원래 cookieParser 사용하면 브라우저가 쿠키 저장 안하는 줄 알았는데 사실은 하는 것이었군요.

확인해주셔서 감사합니다.

어디가 잘못되었는지 제가 좀 더 찾아보겠습니다.

이럴 때 다시 네트워크 탭 가서 보면 됩니다.

0

저장이 안되었다면 네트워크 탭의 cookies 탭이나 response headers Set-cookie 쪽에 에러메시지가 있을 겁니다. 그걸 확인해보세요.