Skip to content

Latest commit

 

History

History
103 lines (69 loc) · 3.91 KB

회원탈퇴.md

File metadata and controls

103 lines (69 loc) · 3.91 KB

IMAD 서비스에서 회원탈퇴를 구현하기 위한 각 auth provider 별 방법 정리

자체 회원

  • DB에서 해당 User 관련 데이터 삭제

소셜 회원

Oauth2 업체와의 연결을 해제하기 위해서는 access token이 필요하다. 이 때문에 DB에 access token을 저장하는 칼럼을 따로 추가해주려고 한다. 이를 이용한 회원 탈퇴 절차는 다음과 같다.

  1. (클라) 유저가 회원 탈퇴 버튼 CLICK
  2. (서버) 해당 유저의 db에 저장된 auth access token을 통해 oauth2 업체 측에 회원탈퇴 요청
    1. access token이 validate 할 경우 : 3번으로
    2. refresh token이 validate 하지 않은 경우
      1. 유저에게 소셜 재로그인을 요구하고 access token 발급 받아 db에 저장
      2. 메세지 등을 띄워서 회원탈퇴 버튼을 다시 누르도록 유도함 (1번으로)
  3. (서버) oauth2 업체에게 회원탈퇴(revoke) 요청
  4. (서버) revoke 완료 응답 수신
  5. (클라) 유저에게 회원탈퇴가 정상적으로 완료되었음을 display

카카오

Kakao Developers

  • https://kapi.kakao.com/v1/user/unlink 에 access token을 첨부하여 요청
  • 정상적으로 처리되었다면 응답으로 해당 유저의 회원번호를 받음
  • 로그아웃 또한 함께 진행되어 access token과 refresh token이 만료 처리됨

Header

이름 설명 필수
Authorization 사용자 인증 수단, 액세스 토큰 값Authorization: Bearer ${ACCESS_TOKEN} O

예시

curl -v -X POST "https://kapi.kakao.com/v1/user/unlink" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}"

계정 관리 페이지 / 고객센터에서 연동해제 진행할 경우

  • 개인 정보 삭제나 잔여 캐시 안내 등의 후처리를 위해 콜백 API를 설정할 수 있음

image image


네이버

네이버 로그인 개발가이드 - LOGIN

  • https://nid.naver.com/oauth2.0/token 에 요청하여 연동 해제 진행

Parameter

요청 변수명 타입 필수 여부 기본값 설명
client_id string Y - 애플리케이션 등록 시 발급받은 Client ID 값
client_secret string Y - 애플리케이션 등록 시 발급받은 Client Secret 값
access_token string Y - 유효한 접근토큰 값
grant_type string Y - 요청 타입. delete 으로 설정

예시

https://nid.naver.com/oauth2.0/token?grant_type=delete&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&access_token=ACCESS_TOKEN

애플

Revoke tokens | Apple Developer Documentation

예시

curl -v POST "https://appleid.apple.com/auth/revoke" \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'client_id=CLIENT_ID' \
-d 'client_secret=CLIENT_SECRET' \
-d 'token=ACCESS_TOKEN' \
-d 'token_type_hint=access_token'

구글

아무리 구글링해봐도 관련 공식문서가 안 보이고, 블로그에서도 정확하게 명세해둔 곳이 없어 혹시나 하는 마음으로 chat gpt에게 물어보았다. 그랬더니 바로 답을 내주더라…

https://accounts.google.com/o/oauth2/revoke?token=YOUR_ACCESS_TOKEN

위의 URL에 access token 넣어서 GET 요청 날려주면 된다.