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
'Cloud | CICD > Deploy' 카테고리의 다른 글
[React] EC2 인스턴스에 React 프로젝트 배포 (0) | 2023.05.03 |
---|---|
[Cors] Cors 에러 삽질 기록 (0) | 2023.03.07 |
[Deploy] EC2에서 Redis 사용하기 (0) | 2023.03.02 |
[Deploy] Github Actions + Docker + EC2 자동 배포 #2 | Docker 설정 (0) | 2023.02.28 |
[Deploy] Github Actions + Docker + EC2 자동 배포 #1 | EC2 설정 (0) | 2023.02.16 |