• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

ctx.req.headers.cookie undefined 증상

19.12.23 02:07 작성 조회수 184

0

아랫분이 글을 올린 것 처럼 저역시 동일 증상이 일어납니다.

해당 부분에 대해 많은 실험을 해보았는데요.

놀라운 의문점이 발생되었습니다.

1. 제가 만든 웹에서 로그인.

2. 쿠키정보에 쿠키 생성 확인 완료.

3. 새로고침

4. 로그확인 >  axios.defaults.headers.Cookie = undefined

5. 제 프로젝트 서버 종료 후, 제로초님의 동일 소스 프로젝트 실행.

6. 로그인.

7. 쿠키정보에 쿠키 생성 확인 완료.

8. 로그확인 > axios.defaults.headers.Cookie = rnbck~~~~~

9. 다시 제로초님의 프로젝트 종료 후, 제 프로젝트 실행.

10. axios.defaults.headers.Cookie = rnbck~~~~~

여기서 제로초님과 저의 프로젝트가 다른점은,

제로초님의 쿠키 name 은 'rnbck' 이고,

저의 프로젝트 쿠키 name 은 'rrcc' 라는 점입니다.

여기서 의문은, 개발자 탭(F12)의 쿠키 데이타로는

 rnbck~~~~

 rrcc~~~~

요렇게 들어 있는데,

axios.defaults.headers.Cookie 의 인식을 rnbck 로만

한다는 점입니다. 쿠키 삭제 후 무조건 undefined는 동일합니다.

프론트서버에서는 rnbck 만 쿠키로 인식할 수 있도록

다른 설정을 해준적이 없는 걸로 기억하고..

제 프로젝트내 소스에서는 'rnbck' 의 명을 검색해도

단 1건의 경우도 존재하지 않습니다.

하지만, 'rnbck' 명으로된 쿠키만 찾는게 의문이네요..

이런점들로 보아, 여러 사이트를 방문하게 되면

수많은 이름의 쿠키데이터가 브라우저에 쌓여있을텐데,

그중 저희가 로그인하기 위한 쿠키를 선택을 어떻게해서

사용하는지도 추가로 의문이 생기게 되었습니다.

해당 의문은 아직 해결을 못한 상태이고, 너무 궁금한

부분이네요..

참고로, 일반 클라이언트에서 dispatch 할때는

withCredential 로 전달되는 쿠키는 지금까지 막힌적 없고

로그인도 아주 잘됩니다..

답변 2

·

답변을 작성해보세요.

0

백엔드에서 cors 설정과 쿠키 주소 설정을 프론트 주소로만 잘 해주면 됩니다.

0

Jun Mr.님의 프로필

Jun Mr.

질문자

2019.12.23

해당 글에 대한 답은 스스로 찾았지만, 찾으면서 또다른 의문이 생기게 되었습니다..^^;;

제가 제 핸드폰이나, 지인들의 접속을 위해 포트포워딩을 통해 특정 port만 열어 개발을 하다보니,

아예 서버로 부터 요청을 제 개인 공인 IP를 사용하여 개발을 하였습니다. 

알고보니, 쿠키의 정보중 도메인이 중요하게 작용하여

제가 보는 페이지(localhost:3000)에서는

서버요청을 통해 만들어진 쿠키(219.?.?.?.? [공인ip])를 인식하지 않더군요..

그래서, (219.?.?.?.? [공인ip]):3000 으로 접속하니,

정상적으로 잘 인식 되었습니다.

그러다보니, 생긴 의문은, 나중에 프론트 서버와, 백엔드 서버의 도메인이 서로 다를 경우, 인식이 불가능할 수 있다는

의문이 생기게 되는데요.. 

또한 withCredential로 전달한 쿠키는 현제 제가 접속한

localhost의 주소임에도 불구하고 그동안 알아서 찾아 (219.?.?.?.? [공인ip]) 쿠키 데이터로  전달했다는 의미가 되는데.. 의문이네요..

나중에 실제로 백엔드 ip와 프론트 ip가 서로다를 경우에는 프론트서버로 뭔가 설정을 추가로 해주어야 하는 부분인가요~~??