전체 글

1. 무슨 일이 있었나요? (1) 로그아웃 기능 구현 로그인에 로그아웃마저 구현 방법이 다양할 줄은 몰랐다🥲 우리 서비스는 액세스 토큰으로 JWT를 사용하고, 리프레시 토큰은 DB(레디스)에 저장하는 방식을 사용중이었다. 여기서 로그아웃을 진행하면 토큰을 무효화할 필요가 있었다. 리프레시 토큰을 무효화하는 건 DB에서 데이터를 삭제하면 되는데, 액세스 토큰은 JWT를 사용중이라 서버에서 토큰을 제어할 수 없다는 문제가 있었다. 결론부터 말하자면 리프레시 토큰만 삭제하고, 액세스 토큰의 삭제는 클라이언트 측에서 진행하도록 했다. 물론 로그아웃 시 액세스 토큰을 블랙리스트에 저장하여, 요청이 들어오면 블랙리스트 등재 여부를 검사하는 방식을 사용할 수도 있었다. 하지만 이렇게 되면 요청이 들어올 때마다 액세스..
보호되어 있는 글입니다.
1. 들어가기에 앞서 글을 시작하기 전에, 이번 포스팅에서 다룰 소셜 로그인의 인증 플로우에 대해 간략하게 짚어보자. 사용자를 구글 로그인 창으로 넘겨준다. 사용자가 구글 로그인에 성공하면, 구글 서버는 우리에게 승인 코드(Authorization code)를 넘겨준다. (2)의 승인 코드를 구글 서버에게 넘기고, 구글 액세스 토큰을 받아온다. 구글 액세스 토큰을 이용해 사용자 대신 구글 사용자 정보를 받아온다. 사용자 정보의 유저 식별자를 통해 가입 여부를 확인한다. 새 회원이면 DB에 사용자 정보를 등록한 뒤, 로그인을 진행한다. 비유를 들어보자면... 이런 느낌이다. 사용자 정보: 금고에 보관 중 액세스 토큰: 금고의 열쇠에 해당. 서랍에 보관 중 승인 코드: 서랍의 자물쇠 비밀번호 액세스 토큰을 ..
소셜 로그인 구현은 처음이라 엄청 막막했지만... 어찌저찌 잘 끝내고 쓰는 후기 소셜 로그인 기능을 구현한 과정을 적어보기로 했다. 들어가기에 앞서, 구글은 카카오에 비해 문서가 매우 불친절하다. 한국어로 적혀있긴 하지만 정말 한글로 옮겨만 놓은 수준인데다가, 문서도 여러개라 꽤 고생했다🥲 영어 실력이 되는 분이라면 영어 문서를 보고 진행하는게 좋을 것 같다. 소셜 로그인을 구현하기 전, 소셜 로그인의 플로우에 대한 이해가 필요하다. 만약 소셜 로그인이 어떻게 진행되는지 모르는 상태라면, 이전 글을 보고 오는 걸 추천! 1. 먼저 구글 클라우드 플랫폼으로 이동해서, 새 프로젝트를 생성해준다. 2. 프로젝트 이름을 적어주고 만들기 버튼을 클릭한다. 3. OAuth 동의 화면 - User Type을 외부로 ..
4주차를 맞이한 팀 프로젝트 멘토링. 우리 팀은 계획대로라면 이번주까지가 1차 스프린트였는데, 일정이 살짝 밀리면서 추가 기능 도입은 멘토링 종료 이후로 넘기게 되었다. 아무튼 이번주 회고도 시작! 1. 무슨 일이 있었나요? 이번 주도 거의 기능 개발에 몰두했다. 자잘하게 디자인을 수정하는 등 다른 업무도 있었지만, 전반적으로 1차 스프린트를 무사히 완료하는 것에 중점을 두었다. (1) 구글 로그인 구현 이번 주에는 소셜 로그인을 구현했다. 원래 카카오톡 로그인도 구현하려고 했는데, 소셜 로그인 구현이 처음이라 생각보다 많은 시간을 소요하는 바람에 구글 로그인만 구현했다. (2) OpenFeign vs WebClient 소셜 로그인을 도입하면서 소셜 서비스에 요청을 보낼 일이 생겼다. API만 개발하던 ..
gorapaduckoo
진화의 돌