codestates / codestates/rightnow
[Error-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.