카카오로그인 에러
문제 및 확인 과정
처음에는 KOE001에러(요청자체가 잘못됨) 발생, 한글 url인코딩이 안되었기 때문
→ UrlEncoder를 이용해 인코딩 해줌
이후 로컬에서 테스트 진행 성공
수정한 코드 ec2서버에 올림 → redirect_uri가 잘못됐다는 에러 발생 (KOE303)
두 가지 모두 배포중인 주소창에 출력되는 인가코드를 복사
스웨거에서 복사한 인가코드를 붙여넣어 요청 보냄
결과
→ 로컬 = 정상,
→ 서버환경 = KOE303 errorcode발생
해결방법 및 원인
원인
- 한글 도메인 사용 → 만악의 근원임, 인코딩 문제
- 1차 원인
- 개발환경, 배포환경 다른 프로필 적용을 위해 application.properties에 한글 도메인 적용
- → 한글 깨짐, 파일 인코딩 형식을 UTF-8로 변경
- → application.properties의 인코딩 방식은 ISO-8859-1 만 가능
- 2차 원인
- 카카오 로그인 api에 요청 보낼때 url에 queryString으로 url에 파라미터를 함께 실어 보냄
- 한글은 url인코딩이 자동으로 적용되지 않음
- → 깨진 한글이 파라미터로 넘어감, 카카오는 받은 파라미터를 상수로 생각해 따로 처리하지 않음
해결방법
- 1차 원인 해결방법
- 한글을 유니코드로 변환해 application.properties에 저장
- 2차 원인 해결방법
- redirect_uri를 URLEncoder를 활용해 utf-8로 인코딩해 사용 [한번만 변환해야함]
역시 개발에서 한글 사용은 최대한 지양하는게 맞는거 같다. 아니면 인코딩때문에 너무 복잡해짐…
근데 왜 로컬에서는 되고 서버에서는 안된걸까? → 인텔리제이의 힘인가