정확한 정보가 아닐 수 있으니 잘못된 정보가 있을 경우 댓글로 알려주세요 :)
<문제상황>
getCommentsByPostTypeAndPostId()라는 api가 있고 서버 컴포넌트에서 호출한다
위 api는 credentials: 'include' 옵션으로 cookie를 담아서 보내주고 사용자 cookie에 따라 comment의 isLike를 다르게 응답한다
이 api를 클라이언트 컴포넌트에서 호출할 때는 웹브라우저가 cookie를 잘 담아서 보내주어 적절한 isLike 값을 가져온다.
그러나 서버 컴포넌트에서 호출할 때는 isLike가 flase만 출력하는데... 서버 컴포넌트에서 호출하면 [웹브라우저 -> next 서버 -> 스프링 서버] 이와 같은 순서로 요청할텐데 next서버에서 getCommentsByPostTypeAndPostId()를 스프링 서버에 요청할 때 쿠키를 자동으로 담아주지 않는 것 같다....
그래서 지금 cookies().set()과 같은 next에서 자체 제공해주는 api를 사용해서 직접 쿠키를 담아서 보내주려고 이러쿵 저러쿵 해보고 있는데.. 아직까지 잘 되지 않는 것 같다..
13.4.1 버전 이상에서 cookies().set()이 에러가 안난다 하는데..
https://github.com/vercel/next.js/issues/49259
계속 업데이트할 예정이다...
cookies().set()과 같은 api를 사용하지 않고 fetch할 때 옵션으로
headers: { Cookie: `accessToken=${cookie}` }
다음과 같이 직접 쿠키를 담아주었더니 해결이 되었다..!