인프런 커뮤니티 질문&답변

바스니카님의 프로필 이미지
바스니카

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

morgan, bodyParser, cookieParser

res.setHeader vs res.cookie

작성

·

1.6K

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

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 쪽에 에러메시지가 있을 겁니다. 그걸 확인해보세요.

바스니카님의 프로필 이미지
바스니카

작성한 질문수

질문하기