소셜 로그인 유저가 탈퇴할 경우
우리 프로젝트와 유저의 kakao로 이어진 연결을 끊어주기 위해 unlink(by Admin Key)를 사용하였고 역시나 마주한 오류.
연결 끊기는 앱과 사용자 카카오계정의 연결을 끊는 기능입니다.
# URL POST /v1/user/unlink HTTP/1.1 Host: kapi.kakao.com Authorization: KakaoAK ${APP_ADMIN_KEY} # Header Authorization: KakaoAK ${APP_ADMIN_KEY} # Parameter target_id_type: String #회원번호 종류, user_id로 고정 target_id: Long #연결을 끊을 사용자의 회원번호 # Response id: Long # 연결 끊기에 성공한 사용자의 회원번호
출처: Kakao Developers (https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#unlink)
연결 끊기는 두 가지 방식이 존재하며
- 연결시 발급한 access token
- kakao에서 주는 앱 admin key
프로젝트의 탈퇴 로직상 access_token 사용은 번거로워서 admin key를 이용하는 방식으로 진행을 했다.
근데 401에러 두둥-
axios.post에 알뜰살뜰히 정보를 넣어 보냈건만 401에러라니,,
아무래도 데이터가 안넘어가는듯 해서 parameter
를 객체로도 바꿔보고, json
으로도 바꿔보고 갖은 삽질을 해보다가 결국 검색을 해보았고
kakao 데브톡에도 관련 오류에 대한 글이 있어 찬찬히 살펴보던 중 실마리를 발견했다!
parameter의 형식을 바꿔보세요~!
또 axios
!
지난 이슈에서도 정리를 했었지만
axios.post
의 두번째 인자인 params
에는 객체 혹은 URLSearchParams
객체가 들어갈 수 있다.
까맣게 잊어버리고 처음에 또 json으로 삽질한 나 자신,,,정신채려,,
객체로도 보냈던 것 같은데 계속 401오류가 났지만 URLSearchParams
객체에 담아서 보내니 바로 성공이 되었다.
URLSearchParams
객체에 추가를 하면 url에 querystring의 형태로 추가가 되는 것 같은데 axios
도 그렇지 않나? 이 부분은 좀더 찾아봐야 할 것 같다.
axios.post로 요청을 보낼 때 데이터 타입을 신경쓰자!
formData
, URLSearchParams
, 객체 이렇게 세 가지를 고려하면 될 것 같다.
객체를 제외한 두가지 타입은 잘 넘어오는걸 확인했으니
프로젝트 끝나고 나서 한번 params에 객체를 넣어 test를 해봐야겠다.
생각해보니
formData
를 객체에 넣어서({ formData }
) 보낼 때도 multipart
오류가 났었다. 😂
앞으론 까먹지 않고 제대로 넣을게 axios.. 미안
kakao도 미안,, ㅋㅋ
출처:
axios 러닝 가이드 - https://yamoo9.github.io/axios/guide/form-format.html#%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80
Axios 공식 문서 - https://axios-http.com/kr/docs/req_config
kakao Login API Docs (unlink) - https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api#unlink
URLSearchParams 설명 - https://developer.mozilla.org/ko/docs/Web/API/URLSearchParams
늘 감사합니다,, 글을 써주시는 모든 분들 😍