cookie 2

[Network] JWT (Json Web Token)

Cookie와 Session의 한계 기본적으로 HTTP는 stateless하기 때문에 종료된 연결에 대한 정보를 기억하지 않는다. 그래서 원칙적으로 따졌을 때 로그인이 필요한 기능을 이용하기 위해서는 매 요청마다 아이디, 비밀번호 등을 전송해줘서 인증 과정을 거쳐야 한다. 다행히 우리는 쿠키를 통해 요청 정보를 기억할 수 있게 되었다. 서버 측에서 클라이언트로 전송해준 쿠키는 클라이언트 측에 저장되어 클라이언트가 요청을 날릴 때마다 서버로 함께 보내진다. 서버 측은 이 쿠키를 통해 각 요청을 식별할 수 있다. 그러나 쿠키 역시 몇 가지 단점을 가진다. 아이디, 패스워드 등 민감한 정보가 포함된 쿠키는 클라이언트 측에 저장되기 때문에 노출될 위험이 있다. 또한 개수와 용량에 제한이 존재하며 브라우저끼리 공..

카테고리 없음 2022.04.18

[Heroku] Heroku 배포 이후 request.session이 제대로 저장되지 않을 때

이번에 MERN 스택으로 이미그레이션한 유튜브 클론프로젝트를 Netlify, Heroku로 각각 프론트엔드와 서버를 배포했다. (DB는 이전에 사용했던 MongoDB Atlas를 그대로 사용했다.) 그런데 development mode에서는 정상적으로 작동하던 session이 heroku로 배포되면서 제대로 유저 정보를 저장하지 못하기 시작했다. (참고로 세션은 MongoDB Atlas를 통해 persist하고 있었는데 DB에는 제대로 session이 저장되어 있었다. 따라서 DB와의 커넥션 문제는 아니다.) 해결 방법은 다음과 같이 express-session 미들웨어의 config를 설정해주면 된다. "proxy : true"에 대한 멘션은 정말 많은 검색을 해도 잘 나오지 않았는데 Heroku 혹은..

잡다한 교훈 2022.04.08