1차 프로젝트를 마무리하면서, 회원가입/로그인 기능 구현에 도전해보고 싶었다.
그렇게 잠깐했던 생각이 사다리를 타고 현실이 되었고^^
소셜로그인 뿌셔야지 🔥
1. 우리 서비스 접근성, 편의성 증가
이것저것 입력하고 인증하는 과정이 아니라 사용자가 더 편하고 빠르게 가입할 수 있다.
2. 카카오 비밀번호 등 데이터를 우리 DB에 보관하지 않아도 돼 보안 good
(password, address 등 nullable 가능)
프론트가 할 일?
---백엔드---
5. 우리 백엔드는 이 카카오 토큰을 열 수 없다. 왜냐하면 카카오에서 암호화된 토큰이기 때문에!
6. 그래서? 토큰을 다시 우리 백엔드가 카카오의 서버에 요청을 한다.(header에 토큰 실어서 요청)
7. API 호출하면 user 확인해서 user data를 넘긴다.
검증되지 않은 사람한테 user의 data를 줄 수 없으니 카카오 토큰을 가지고 온 사람에게만 user data를 준다.
8. 이 user data를 가지고 우리 서비스 DB를 확인
이미 있으면 기존 고객 -> 로그인
없으면? 신규고객 -> DB에 추가, CREATE 후 로그인
(소셜 로그인은 회원가입과 로그인이 한몸, 함수 하나로 등록과 로그인 전부 가능)
9. 토큰을 가지고 우리 백엔드가 user data를 확인하고 jwt 토큰을 넘긴다.(브라우저에 저장)
결론적으로 우리 백엔드의 토큰을 받아서 우리 서비스 안에서 접근 권한을 가진다.