Q. 카카오 로그인 시, CORS 에러가 발생합니다.
A. CORS(Cross-Origin Resource Sharing), 교차 출처 리소스 공유는 HTTP헤더를 사용하여 실행중인 웹사이트가 다른 도메인의 자원에 접근할 수 있도록 브라우저에 알려주는 체제입니다. 즉, A도메인의 프론트엔드 스크립트가 B도메인을 호출하면 브라우저에서는 기본적으로 요청을 제한 합니다.
카카오 로그인 시, CORS에러는 대부분 인가 코드 요청을 Ajax방식으로 요청한 경우 발생합니다.
더 자세한 내용은 아래 게시글 참고해주세요.
인가코드요청(authorize)은 카카오측 페이지 이동 후, 리다이렉트 하므로
브라우저내 XMLHttpRequest를 사용하는 ajax방식으로 사용하면 안되고 JS SDK를 이용하거나 a태그로 이동해야합니다.
반면, 카카오 로그인 이후, 리다이렉트 URI로 되돌아가서 token조회하는 경우 ajax 로 호출 가능합니다.
(kauth는 CORS가 열려있어서 credentials 설정할 필요 없습니다.kauth, kapi는 CORS가 열려있어서 credentials 설정할 필요 없습니다. Kakao Javascript SDK v2.0 이 출시되며 CORS를 모두 오픈하여 프론트엔드에서도 kapi 를 호출할 수 있게 되었습니다.)
다만, 토큰 받기 가이드와 같이 "Content-type: application/x-www-form-urlencoded;charset=utf-8"로 설정하지 않으셔서 Request가 정상 처리 안되는 경우가 있으니 아래 게시물 참고 해주세요.
Q. 카카오 로그인 시, KOE에러
A. 인가 코드 관련 에러 코드 목록
1.1. KOE006 에러가 발생할 때
1.2. KOE010 (Bad client credentials) 에러가 발생할 때
1.3. KOE320 (An authorization code must be supplied, authorization code not found) 에러가 발생할 때
1.4. KOE322 (expired_or_invalid_refresh_token) 에러가 발생할 때
Q. Android 카카오 로그인 LoginClient 를 참조할 수 없음.
A. 기존에는 카카오 로그인 API를 v2-auth 모듈의 AuthApiClient와 v2-user 모듈의 UserApiClient를 통해 호출해야 했으나, Android SDK 2.4.0 버전부터는 UserApiClient 하나로 호출할 수 있도록 개선하였습니다. 단, 사용자 인증 관련 API인 토큰 존재 여부 확인하기 API는 AuthApiClient를 통해 호출합니다. 문서의 예제 또한 최신 버전에 맞게 업데이트되었습니다.