OAuth 로그인/회원가입 처리

황세훈·2024년 8월 27일

cmc 프로젝트

목록 보기
6/10

OAuth 로그인/회원가입 처리

로그인/회원가입 flow

OAuth를 거치면서 회원가입 시에는 약관동의,닉네임설정을 해주어야 한다.
로그인 시에는 바로 메인화면으로 이동

고려사항

  1. 회원가입/ 로그인 모두 동일한 OAuth를 거치는데 어떻게 식별하 것인가
  2. 회원가입 시 OAuth를 수행했다면 token값을 서버로 부터 받는데 그 과정에서 이탈하게 되었을 때, 실제 회원가입이 되지 않았음에도 서비스를 이용할 수 있음 ( token값이 있으므로 )

처리페이지 설정

google과 apple모두 OAuth를 마치면 redirect로
/callback/apple
/callback/google
에서 처리하도록 페이지를 할당

apple 로그인은 form_post형식으로 서버로 데이터를 전송한 후 서버에서 redirect 주소로
"/callback/apple?token=토큰값&nickname=닉네임값" 을 주고

google 로그인은 서버의 response data로 token,nickname값을 주었다.

공통적으로 /callback 에서 token과 nickname을 이용!

if) 회원가입
닉네임을 설정하지 않았으므로
token=토큰값, nickname=null 으로 값이 할당되었음

고려사항 1 해결법

nickname=null 값으로 회원가입/로그인 식별

고려사항 2 해결법

회원가입 시 accesstoken을 서버로부터 받는데 이 값이 회원가입 후에 활용되어야 한다.
따라서 zustand에 tempToken이라는 필드를 할당하여 accessToken값을 넣는다.

이렇게 되었을 때 회원가입 OAuth를 끝마쳤다면

accessToken : ''
tempToken : '토큰값'

이런형태로 존재하게 되므로 회원가입 이탈 시에 서비스를 이용할 수 없게 된다.
=> 모든 api 호출은 accessToken을 사용하므로

회원가입이 성공적으로 완료되었을 시 accessToken값에 tempToken값을 넣어주면서
api 사용을 가능하도록 한다.

profile
음.. 한줄로는 부족하다

0개의 댓글