서버와 클라이언트간 연결을 jwt를 사용하여 구현하였다. jwt는 클라이언트 쿠키에 저장되어 관리된다. 클라이언트에서 서버에 요청을 보낼 때 쿠키도 같이 보내주어야 했다.(쿠키를 보내야 jwt값이 보내짐) 해결책으로 cookie-parser을 알게 되었고 프로젝트에 적용하였다.
[EXPRESS] 📚 bodyParser / cookieParser 미들웨어 💯 사용법 정리
npm install을 사용하여 cookieparser를 설치해준다.
cors를 사용해서 모든 출처에서 허용하도록하고 credentials:true를 사용해서 쿠키와 같은 인증정보를 포함할 수 있도록 설정해준다.
withCredentials:true를 사용하여 서버 요청에 쿠키와 같은 인증정보를 포함할 것이라는 것을 설정해준다.
cookie-parser를 사용하면 key-value형태로 쿠키값을 가져올 수 있다. 즉 req.cookies라는 것에서 jwt라는 이름을 가진 value값을 가져오는 것이다.
클라이언트에 jwt를 쿠키에 저장되는 것 까진 됬었다. 그래서 호출할 때 쿠키값도 요청에 포함하여 서버에 전달하였고 서버에서는 cookie-parser를 통해 jwt값을 가져와야 했다. 하지만 계속 req.cookies.jwt = undefined오류가 발생하는 것이었다.
=> 찾아보다가 stackoverflow 글을 읽게 되었다.
딱 내 상황이였다. app.router에서 cookieParser를 사용하고 있었고 router되기 전에 cookieparser를 사용해야 했다.
route되기전에 cookieparser를 적용하였더니 정상적으로 작동했다.