[해결]같은 redirect_uri지만 배포서버와 로컬 다른결과가 나옵니다 (KOE303)

로컬에서 배포중인 클라이언트에서 받은 인가코드로 정상적으로 토큰을 반환받는걸 스웨거를 통해 확인하고
ec2서버에 배포를 진행했습니다.
배포가 완료되고 배포중인 클라이언트에서 받은 인가코드로 서버에서 실행중인 스웨거를 통해 요청을 보내니
KOE303에러가 발생했습니다.
이러한 에러가 발생하는 원인에 대해서 알 수 있을까요?

현재 한글 도메인을 사용중입니다.
백엔드는 springboot로 구현했습니다.
로컬은 windows10을 사용중이고 ec2서버는 ubuntu20.04 사용중입니다.


처음 KOE001에러(요청자체가 잘못됨) 발생, 한글 url인코딩이 안되었기 때문
→ UrlEncoder를 이용해 인코딩 해줌

이후 로컬에서 테스트 진행 성공

수정한 코드 ec2서버에 올림 → redirect_uri가 잘못됐다는 에러 발생 (KOE303)

두 가지 모두 배포중인 클라이언트 주소창에 출력되는 인가코드를 복사 (테스트를 위해 프론트에서 백엔드로 코드를 보내지 않음)

스웨거에서 복사한 인가코드를 붙여넣어 요청 보냄

결과
→ 로컬 = 정상,
→ 서버환경 = KOE303 error발생

위와 같이 테스트를 진행했습니다.


로컬에서 사용할 application.properties를 개발환경과 배포환경 나눠놓고 이 곳에 redirect_uri를 저장해 사용했습니다.
application.properties에서 한글이 깨져서 파일 인코딩 방식을 utf-8로 변경했는데 application.properties는 ISO 8859-1로 인코딩 되어야 한다고 합니다. 깨지는 글자는 유니코드로 변환해 입력해 줘야했습니다.
그리고 추가적으로 httpurlconnection을 이용할 때 필요한 파라미터를 url에 쿼리스트링 형태로 전달하기 때문에 한글이 포함된 값은 URLEncoder를 사용해 utf-8형식으로 변환해 줘야 했습니다.
그래서 도메인을 유니코드로 변환해 테스트 해봤더니 로컬, 서버 모두 잘 동작했습니다.

1개의 좋아요