본문 바로가기
따라 공부하기/Spring boot 혼자 개발하는 웹 서비스

[Spring Boot]구글과 네이버 로그인 API에 EC2 주소 등록

by DawIT 2021. 1. 4.
320x100

이 글은 이 책을 참고하여 쓰여졌습니다.

 

저번에 성공적으로 프로젝트를 배포했지만 로그인 기능이 작동하진 않는다.

 

이는 네이버와 구글의 API 서비스에 EC2 주소를 등록해야 하기 때문이다.

 

 

먼저 console.cloud.google.com 에서 API 및 서비스 -> 사용자 인증 정보

 

 

해당 어플리케이션을 선택하여 URI에 주소를 추가해준다. DNS 퍼블릭:8080/login/oauth2/code/google

 

 

또한 OAuth 동의 화면에서도 승인된 도메인 란에 http와 포트를 제외하고 입력해준다.

 

 

developers.naver.com 에서 네이버도 수정해준다.

 

이렇게 다 설정해주고 다시 접속해 보았는데..

 

 

로그인 시도를 해도 이 창이 뜨면서 정상적으로 로그인되지 않았다.

 

 

혹시몰라서 재배포도 해보았지만.. 여전히 문제는 해결되지 않았다.

 

그래서 열심히 생각하고 찾아본 결과.. DB에 문제가 있다는 것을 알아냈다.

 

기존에 user DB를 추가할 때 칼럼을 몇개 빼먹었었다.. 이를 수정하고 다시 로그인을 시도하는데..

 

 

또다른 에러가 뜬다. 그런데 여기서는

 

 

이렇게 다시 돌아가보면 로그인은 잘 된 것으로 나온다. 그래서 글을 등록하려 하면..

 

 

403에러메시지가 뜬다. 이는 권한이 없어서 글을 작성하지 못하는 것인데.. 로그인 시 권한을 추가해주어야 겠다.

 

웃긴건 구글 로그인은 로그인 시 에러 페이지가 뜨는데 네이버는 그냥 로그인이 잘 된다.(물론 글은 안써진다)

 

 

OAuthAttributes.java 파일에서 toEntity의 role을 GUEST에서 USER로 바꾸어 주면 된다.

 

 

수정 후 깃허브 푸시 후 재배포

 

이미 GUEST로 지정되어있던 데이터를 삭제해준다.

 

 

? 안된다. DB에서 쿼리를 쳐봐도 로그인 했는데 아무 엔티티도 생성되지 않는다...

 

 

웃긴건 새로운 계정으로 로그인하여 글 작성시 작성이 된다. 뭐지..?

 

 

테이블에 캐시? 같은 데이터가 남아있어서 그런거 같아서 테이블을 전체 삭제하고 다시 생성했다.

 

 

이제 잘 된다!

댓글