현재 뮤피에서 소셜 로그인을 OIDC를 사용해서 구현하고 있다. 카카오, 구글, 애플 로그인을 제공하는데, OIDC도 OAuth2.0의 확장 스펙이다 보니 각 로그인의 구현 방식이 서로 같다. 현재 코드가 구현에만 신경을 쓰다 보니 카카오 로그인 먼저 구현하고 나머지는 복붙해서 변경 부분만 바꿔둔 상태였다. “객체 지향과 디자인 패턴”이라는 책을 읽는 중에 디자인 패턴 중 하나인 “템플릿 메서드 패턴” 파트를 읽다가 소셜 로그인 부분에 적용할 수 있을 것 같아서 미뤄놨던 리팩토링을 해보려고 한다. OIDC를 어떻게 구현했는지는 아래의 링크에 자세히 설명해두었다. https://aodtns.tistory.com/124 Open ID Connect 으로 구글 로그인 구현하기 (feat. SpringBoot)..
뮤피에서는 기존에 OAuth를 사용하여 소셜 로그인을 구현하였다. 소셜 로그인 구현 방식은 다음과 같다. Client가 Authroization Code를 받아서, Server에 보낸다. Server는 받은 Code로 Resource Server에 접근하기 위한 Access Token을 Authorization Server로부터 발급받는다. 발급받은 Access Token으로 Resource Server에게서 정보를 가져온다. 로그인 혹은 회원가입 처리를 한다. OAuth의 문제점 OAuth를 사용하면 발급받은 Access Token이 뮤피에게서 받은 것인지는 알 수가 없다. 단순히 Resource Server에 접근하기 위한 Access Token이기 때문이다. 이는 OAuth가 인증이 아닌 “인가”에..
서론 우리 프로젝트에서 소셜 로그인으로만 로그인을 구현할 예정이고, REST가 아닌 flutter sdk를 이용한 로그인으로 구현하기로 정해서 REST에서의 카카오 로그인과 flutter sdk를 이용한 카카오 로그인의 차이가 뭔지 찾아보았다. REST api REST API의 방식은 우리 서버가 클라이언트와 카카오 서버 사이에서 받은 token으로 유저 정보를 가져오는 방식이다. 즉, 카카오에서 준 정보를 DB에 저장한다. Flutter SDK 하지만 flutter sdk를 이용하면 모바일은 카카오 서버에게서 유저 정보를 받고 받은 유저 정보를 우리 서버로 전달하는 식으로 진행된다. 즉, 카카오에서 준 정보는 모바일이 받고 그 정보를 모바일에서 서버로 던져주면 서버가 받아서 DB에 저장하는 방식이다. ..