[22.08.23] Daily 회고록 (jwt + google oauth2 소셜 로그인)
일간 회고록(TIL)

[22.08.23] Daily 회고록 (jwt + google oauth2 소셜 로그인)

[일일회고]

소마 프로젝트 중간 평가가 이번 주 목요일로 거의 하루정도 남았다. 저번주에는 프로젝트에 관한 문서를 작성하고 이번 주는 발표 ppt를 만들면서 프로토타입을 만드는데 집중하고 있다. 기획했던 속도에 비해 MVP가 생각보다 늦게 나와서 이대로 갔을 때 제대로 배포 가능한지 의문이 든다.. 분명 이 점을 중간 평가때도 질문이 들어올텐데 고안을 해보아야겠다. 백엔드 쪽은 불완전하여 리팩토링이 필요하지만 60% 이상은 완성이 된 듯하고, 프론트엔드는 30%정도 완성이 된 것 같다. 나중에 외주 작업도 필요하니 빠르게 작업할 필요가 있는데 프론트엔드 팀원이 첫 프로젝트다 보니 트러블 슈팅에 긴 시간이 소요되어 지연되고 있다. 다음주부터는 개강인데 속도를 맞출 수 있을지 . . 

 

[프로젝트]

[소마]

- 프로젝트에 출제자 로그인에는 따로 우리 프로젝트에서 사용자 계정을 관리하지 않고 소셜 로그인을 통해 관리하기 위해서 여러 소셜 플랫폼을 도입 예정이지만, 일단 google oauth2부터 도입하기로 했다. 소셜 로그인을 사용하였을 때의 이점은 비밀번호의 관리를 소셜 플랫폼에 위임하므로 직접 관리하였을 때보다 보안적으로 안전하며, 사용자들도 자주 사용하는 계정이다 보니 잊을 확률이 적다. 또한, 계정 찾기 등과 같은 기능들도 제공하니 프로젝트의 메인 기능들에 집중하기 위해서  소셜 로그인을 택했다. gcp에서 프로젝트를 생성한 뒤, 프로젝트 관련 설정들을 해주고 spring boot에도 설정을 해주었다.  해당하는 api에 접근하면 구글 로그인을 할 수 있도록 돕고, 해당하는 OAuth2Account를 생성하여 서버에 저장한 뒤,  jwt를 클라이언트에서 보관할 수 있도록 재전송 해준다.  처음엔 간단할 듯 싶어 제작하다가 많이 날려먹고.. 수 많은 리팩토링 끝에 제대로 작동하는 코드를 얻을 수 있었다. 로컬 환경에서는 제대로 동작하지만 ec2 환경에서는 아직 테스트해보지 않아서 내일 해 볼 예정이다. jwt 강의와 소마 초기에 했던 미니 프로젝트 "소마번개"에서 백엔드 고수셨던 김수홍 연수생님의 코드가 많은 도움이 되었다..ㅎㅎ

 

yml 설정
오직 jwt+소셜로그인을 위해서 이렇게 많은 클래스들이 필요했다..

 

핵심코드 1 - GoogleOAuth2Controller
핵심코드 2 - OAuth2Service