이게 소셜로그인 + JWT 로그인의 마지막 작업이 될 것 같다

우선, OAuth2 유저에 대한 정보를 어떻게 저장해야 하나에 대해서 고민했다.

OAuth2 유저는 기존 회원가입 유저에 비해 제한적인 정보만을 저장할 수 있다.

따라서 OAuth User Entity를 새로 생성해서 OAuth User Entity와 User Entity를 분리하고,

하나의 User은 여러개의 소셜로그인을 할 수 있도록 N:1관계로 생성해주기로 했다

Untitled

소셜로그인을 할 경우 OAuthMember Entity에 데이터가 저장되고, 1:1 매핑이 되어있는 소셜로그인 정보에는 토큰에 대한 정보를 담기로 했다

또한, 소셜로그인 시 Member 테이블을 탐색하여 같은 이메일이 있는 경우 UserTable에 동기화를 해주고, 없는 경우 새로운 User Record를 생성하기로 했다

추가적으로… OAuth 서드파티에 따라 이메일과 닉네임이 변경될 수 있는데… 가장 최근에 로그인 한 이메일로 초기화해주기로 했다