안녕하세요.
서비스에서 카카오로그인을 지원하기 위해 REST API를 이용한 카카오로그인 관련 부분을 개발 중입니다.
처음 인가 코드 받기
단계에서 Postman 등 브라우저가 아닌 방식으로 API 호출할 때는 카카오 로그인 화면에 해당하는 html을 받는 것을 확인했는데, 실제 서비스 web page에 login 버튼을 추가한 후 backend의 redirect를 통해 브라우저에서
를 호출할 경우 Allow-Control-Allow-Origin이 wildcard ‘*’ 면 안된다는 오류가 발생합니다.
Access to XMLHttpRequest at ‘카카오계정’ (redirected from ‘http://api.mydomain.com:8080/api/login’) from origin ‘http://www.mydomain.com:3000’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard ‘*’ when the request’s credentials mode is ‘include’. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
(my_redirect_url, my_client_id, mydomain.com 등의 값은 실제 사용 중인 값이 있으나 오픈된 게시판이라 저렇게 기재하였습니다.)
제가 이해하기로는 kakao developer의 내 애플리케이션 설정에서 플랫폼과 카카오 로그인의 redirect URI를 제 서버의 정보로 등록하면 Access-Control-Allow-Origin에 해당 URL 정보가 들어와야 하는 것으로 알고 있는데, 왜 wildcard로 설정되는 것인가요?
혹시 다른 전제 조건이 있는 것인가요? 아니면 원래 카카오 로그인에서는 Access-Control-Allow-Origin을 항상 wildcard로 주나요?