작성
·
1.2K
0
스프링부트 REST + OAuth2 + JWT를 사용하고 있는 상황인데
로컬에서는 잘 돌아갑니다.
로컬에서 소셜로그인이 성공하면 OAuth2SuccessHandler에서 바로 JSON으로 반환해주는 형태입니다. 즉, 컨트롤러가 딱히 무슨 역할을 하지 않아도 바로 반환을 해줍니다.
하지만 EC2에 배포하고 구글 개발자 센터, yml에 EC2 퍼블릭을 제대로 입력해주고 제대로 일치하는 것을 확인했고
버튼을 클릭하면 아이디들이 제대로 뜹니다. 하지만 로그인한 결과 로그인할 아이디를 클릭을 하면
Whitelabel Error Page 404페이지가 뜹니다.
그래서 실패했을 때 JSON으로 반환시켜주는 로직을 추가해서 확인한 결과
"error 발생 : ": "[authorization_request_not_found] "
이러한 오류가 발생했습니다.
항상 체크해야하는요소
yml 체크함
구글 개발자 센터 확인함
→ 1, 2번은 일치함
EC2 인스턴스의 보안 그룹이 OAuth2 콜백 URL로 요청을 수신할 수 있도록 올바르게 설정되었는지 확인 → 이거는 어떻게 다른 설정법이 있을까요?
application.yml
또는 application.properties
에 설정된 값들이 프로덕션 환경에 맞게 정확히 설정
이렇게 환경변수를 받아서 ec2 배포시 사용할 수 있도록 설정했는데 추가적으로 또 뭔가를 해줘야 하나요?
혹시 OAuth2 google을 테스터로 해놓고 http로 해놓으면 ec2 배포시에는 사용하지 못하나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
유요한님의 문제는 EC2 환경에서 구글 로그인이 정상적으로 동작하지 않는 상황으로 보입니다. 로컬 환경에서는 문제가 없으나 EC2에 배포 후 Whitelabel Error Page 404가 나타나고, 오류 메시지로 “error 발생 : “: “[authorization_request_not_found] “가 표시된다고 하셨습니다. 이를 해결하기 위해 다음 사항들을 확인해 보시는 것이 좋겠습니다.
EC2 인스턴스의 보안 그룹 설정
프로덕션 환경 설정
application.yml
또는 application.properties
파일에 설정된 값들이 프로덕션 환경, 특히 EC2 인스턴스에서 올바르게 사용될 수 있도록 환경변수가 정확하게 설정되어 있는지 확인해야 합니다.HTTPS와 OAuth2 구글 설정
클라이언트 ID와 시크릿 값의 확인
로깅 및 디버깅
OAuth2 관련 설정에 대한 더 자세한 정보는 Spring Security - OAuth2 문서를 참조하시기 바랍니다. 이러한 검토 사항들을 통해 문제를 해결해 나갈 수 있을 것입니다.