소셜로그인(카카오)

jhyunk218·2021년 10월 26일
0

뚞딲뚞딲

목록 보기
2/4

1차 프로젝트를 마무리하면서, 회원가입/로그인 기능 구현에 도전해보고 싶었다.
그렇게 잠깐했던 생각이 사다리를 타고 현실이 되었고^^
소셜로그인 뿌셔야지 🔥

소셜로그인

소셜로그인, 왜 ?

1. 우리 서비스 접근성, 편의성 증가
이것저것 입력하고 인증하는 과정이 아니라 사용자가 더 편하고 빠르게 가입할 수 있다.
2. 카카오 비밀번호 등 데이터를 우리 DB에 보관하지 않아도 돼 보안 good
(password, address 등 nullable 가능)

소셜로그인의 주체?

  1. 우리 서비스 클라이언트
  2. 우리 서비스 서버
  3. 플랫폼(카카오, 구글...)

프론트가 할 일?

  1. 카카오 developers에 우리 서비스 등록하기
  2. 프론트가 요청하는 fetch의 대상? 플랫폼의 백엔드 서버
  3. 프론트한테 카카오가 준 카카오 토큰을 우리 백엔드에 전달한다.(세세한 개인정보는 토큰에 감싸진 상태로 오기 때문에 우리 서비스에 가입시키기위해 request)

---백엔드---
5. 우리 백엔드는 이 카카오 토큰을 열 수 없다. 왜냐하면 카카오에서 암호화된 토큰이기 때문에!
6. 그래서? 토큰을 다시 우리 백엔드가 카카오의 서버에 요청을 한다.(header에 토큰 실어서 요청)
7. API 호출하면 user 확인해서 user data를 넘긴다.
검증되지 않은 사람한테 user의 data를 줄 수 없으니 카카오 토큰을 가지고 온 사람에게만 user data를 준다.
8. 이 user data를 가지고 우리 서비스 DB를 확인
이미 있으면 기존 고객 -> 로그인
없으면? 신규고객 -> DB에 추가, CREATE 후 로그인
(소셜 로그인은 회원가입과 로그인이 한몸, 함수 하나로 등록과 로그인 전부 가능)
9. 토큰을 가지고 우리 백엔드가 user data를 확인하고 jwt 토큰을 넘긴다.(브라우저에 저장)

결론적으로 우리 백엔드의 토큰을 받아서 우리 서비스 안에서 접근 권한을 가진다.

  1. 우리 프로젝트에서는 유저, 호스트가 따로 있다! -> how?
  2. 카카오 로그인
profile
FROM 🌱 TO 🌳

0개의 댓글