나의 상황
- react front를 구축하고 github OAuth 로그인을 하면 server에서는 session에 user id를 저장한다.
- front에서는 main page로 들어갈 때 마다 authorization check를 위한 fetch를 보낸다.
fetch('서버주소' + /authorization)
- server에서는 /authoization 으로 요청이 오면 session 정보를 확인하여 login 상황인지를 return 해준다.
- 여기서 req.session 확인 시 계속 1에서 저장한 session이 아닌 초면인 session이 나왔다.
이전과 다른 점
front를 vanilla javascript로 작성했을 때는 front, server 한번에 실행시키면서 port 번호나 ip를 따로 설정하지 않고 바로 fetch('/authorization')
이런식으로 실행하면서 세션을 잘 받아왔었다.
해결 책
fetch 두 번째 parameter에 다음을 추가하자 credentials: 'include'
fetch(rootUrl+ url, {credentials: 'include'}).then((res) => res.json());
https://stackoverflow.com/questions/49361042/express-session-not-persisting-between-api-calls-from-react-front-end