codestates / codestates/rightnow

[Error-Handling] 서버에서 쿠키에 담아보낸 정보가 클라이언트에서 읽혀지지않음

Open
#181 0 comments 0 reactions 0 assignees View on GitHub
err-handling
Dominant language
TypeScript
Stars
0
Forks
3
PR merge metrics
No merged PRs in 30d

Description

### **어떤 에러인가요?**

- 서버에서 쿠키에 담아보낸 refreshToken의 정보가 클라이언트에서 읽혀지지않는다.

### **에러 메시지**

- 로그인 요청시 서버에서 응답을 보내주는데, 클라이언트 페이지에서 쿠키부분에 담겨진 정보가 아무것도 나타나지 않는다.

### **에러 핸들링 방법**

- samesite:none, secure:ture 설정을 해주었었는데, 이 설정을 지웠다. (samesite의 default 값은 samesite:Lax 이다.)

Secure 속성을 추가된 쿠키는 HTTPS프로토콜에서만 전송이 가능하며 SameSite가 None이어도 Secure 속성이 없으면 None속성이 적용이 되지 않아 쿠키값을 여전히 사용하지 못한다.
그런데 secure:true는 https에만 적용되므로, http인 지금 우리 프로젝트에서 적용이 되지 않는다.

따라서 samesite:Lax 를 사용했는데,
이 옵션은 타사이트에서 쿠키를 사용할 수 있지만 CSRF 공격의 피해를 당하지 않도록 하는 보안 혜택이 추가된 경우에 사용되어야만한다.
이 옵션을 설정해주어 오류를 해결하였다.

출처: https://mandlife.tistory.com/entry/크롬에서-Cookie-의-값을-잃어버린다-SameSite-설정하기 [현재노트]

```js
res.cookie('refreshToken', req.sendData.data.refreshToken, {
httpOnly: true,
});
```

### **에러 핸들링을 위해 참고한 레퍼런스 링크**

[링크](https://hyeonguj.github.io/2020/02/05/chrome80/)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.