쿠키에 관련해서 질문드립니다.
안녕하세요. 강의를 듣고 여러 프로젝트를 하면서 개념이 정리가 잘되지 않아서 이렇게 질문 드립니다.
실제로 일을 하다보면 여러 쿠키에 대한 여러 설정값이 나오더라구요.
withcredentials, sameSite, secure, httponly 등등...
첫 번째로 서로 다른 도메인에서 쿠키를 주고 받으려면 클라, 서버 둘 다 withcredential = true 로 설정해야 된다는 것을 알고 있습니다.
만약 클라가 aaa.com이고 api요청을 api.aaa.com을 가지고 있는 서버에 준다고 하면
withcredential에 대한 설정을 어떻게 해야 하는 건지 궁금합니다.
aaa.com과 api.aaa.com은 sameSite이고 서로 다른 origin 인것까지는 이해했습니다.
인터넷에 여러 글을 찾아봐도 어떤 글은 서로 다른 도메인간의 쿠키 전달이라고 명시되어 있는 반면 아떤 글은 서로 다른 origin 간의 쿠키 전달 옵션이라고 되어 있어 혼란스럽습니다.
결론적으로
1. 도메인과 서브 도메인의 도메인 일치 여부
2. withcredential 옵션의 기준 -> 서로 다른 도메인인지, 서로 다른 origin인지
3. sameSite 가 같은 도메인을 의미하는지
그래서
클라: aaa.com
서버: api.aaa.com
환경에서 withCredentials 설정을 해줘야하는지 궁금합니다.
답변해주시면 감사합니다.
답변 1
0
안녕하세요. hoilm7님
쿠키는 강의에서 설명드린 것 처럼 다양한 범위를 가집니다.
aaa.com으로 쿠키 도메인을 설정하면
api.aaa.com에서도 같은 쿠키를 접근할 수 있습니다.
일반적으로 웹 브라우저에서 링크를 누르거나 폼을 서밋하는 등의 행위를 할 때는 이렇게 쿠키를 자유롭게 사용할 수 있습니다.
그런데 문제는 자바스크립트를 사용해서 XHR, fetch 등의 기능을 사용할 때 발생합니다.
이 경우 origin이 같은 경우에만 호출할 수 있도록 동작하기 때문에
aaa.com에서 api.aaa.com으로 자바스크립트 XHR을 호출하면 쿠키가 넘어가지 않습니다.
따라서 이때는 클라이언트에 withCredential 옵션을 넣어주어야 하고 서버에서도 응답할 때 다음 두 값을 포함해서 응답해야 합니다.
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://aaa.com
더 자세한 내용은 다음 링크를 확인해주세요.
https://developer.mozilla.org/ko/docs/Web/HTTP/CORS
감사합니다.
PUT, PATCH method 관련 질문
0
710
2
POST 등록과 PUT 등록 차이 중 의문점
0
667
2
pk값 중복이나 비지니스 로직일때 500에러 ..?
0
610
1
쿠키 & 세션을 REST API로 개발할 때
0
2541
1
캐시 관련 질문입니다.
0
616
1
ETag 질문입니다.
0
727
1
캐시의 설정 주체
0
534
1
영속쿠키 질문입니다.
0
503
1
협상(accept-language)
0
686
1
에러 코드의 구현 주체
0
438
1
웹서버가 구현?
0
596
1
필수헤더?
1
560
1
Host와 Port
0
774
1
다른 도메인이 같은 포트를 사용하는 경우
0
1259
1
표준 헤더와 임의 헤더
0
534
1
POST 등록 후 Location 헤더
0
569
1
프로세스의 상태가 변경되는 경우에 Post 사용
1
1809
1
지속연결에 대해서.
0
692
1
제가 아는 쿼리 파라미터 개념이 맞는지 확인 부탁드립니다.
0
593
1
캐시 내용중 no cache 일때
0
358
1
DNS 서버 관련 질문
1
748
1
캐시로 저장된 파일의 유효기간은 얼마나 되나요?
0
662
1
웹브라우저 요청흐름 질문입니다.
0
847
1
캐시 무효화 질문드립니다
0
561
1





