본문 바로가기
Cloud | CICD/Deploy

[Deploy] 배포된 EC2에서 Google Login이 안되는 문제 해결

by seoyamin 2023. 3. 2.

Spring boot 프로젝트에서 OAuth2User를 이용한 구글 로그인을 구현했었다.

로컬에서는 멀쩡히 잘 돌아가던 구글 로그인이 배포된 API에서는 안되는 문제가 있었다.

얄팍한 해결방법을 남겨두려고 한다.

 

 Check Point 1   Redirect URL은 ip로 불가능!

Google Cloud Console에 들어가서 Redirect URI를 배포된 서버 ip주소로 (123.45.6.78 형태) 변경하려고 하니까 아래와 같은 오류메세지가 떴다. 공개 최상위 도메인으로 끝나야 한다는 것이다.

 

 

따라서 숫자로 된 Public IP가 아닌, EC2의 퍼블릭 IPv4 DNS 주소를 이용해서 Redirect URI를 추가해주었다.

http://퍼블릭 IPv4 DNS/login/oauth2/code/google

 

 

 Check Point 2   동일한 주소로 Request & Redirect 필요

Check Point 1에서 Redirect URI를 퍼블릭 DNS로 바꿨는데, 구글 로그인 요청 주소는 계속 숫자로된 IP를 이용하니까 로그인이 정상적으로 이루어지지 않았다. 그래서 요청도 퍼블릭 DNS으로 보내야한다!

 

🚨Before
Request http://public ip 주소/login/oauth2/authorization/google
Redirect URI http://public dns 주소/login/oauth2/code/google
🚨After
Request http://public dns 주소/login/oauth2/authorization/google
Redirect URI http://public dns 주소/login/oauth2/code/google

 

 

 Check Point 3    application.yml의 rediret-uri 설정

Redirect URI를 퍼블릭 dns로 설정한 후, application.yml에 추가적으로 Redirect URI를 명시해줬다.

 

spring:
  security:
    oauth2:
      client:
        registration:
          google:
            client-id: ************************************
            client-secret: ************************************
            scope:
              - email
              - profile
            redirect-uri: http://퍼블릭 DNS 주소/login/oauth2/code/google