카카오로그인 javascript 인증 문의

안녕하세요. javascript로 카카오의 사용자 정보를 가져오는 기능을 구현중입니다.

Vue기반에 사용하다보니 어려운 부분이 있는데요.

일단 프로세스는 이렇습니다.

  1. Auth.authorize()
  2. Auth.setAccessToken()
  3. Auth.getStatusInfo()

이러한 순서인데요.

1번 과정에서 code 값은 정상적으로 리턴을 받습니다.

그리고 받은 code를 setAccessToken(code) 이런식으로 셋팅해줍니다.

하지만, getStatusInfo()를 사용하면 응답이 401에러가 발생하는데요. 문구는 아래와 같습니다.

kakao.min.js:98
GET https://kapi.kakao.com/v2/user/me 401 (Unauthorized)

여기까지가 증상인데요.

제 생각에는 Kakao로그인을 하면서 페이지 이동이 발생하고, 그 떄문에 다시 서비스로 돌아왔을 때 SDK를 다시 init 하는데요.
혹시 그 부분때문에 문제가 발생하는걸까요?
아니면 다른 부분을 더 봐야할까요…

감사합니다.

안녕하세요.

그리고 받은 code를 setAccessToken(code) 이런식으로 셋팅해줍니다.

인가코드와 액세스 토큰은 다른 것인데요.

가이드 확인하셔서 액세스 토큰 사용 하시면 됩니다.

감사합니다.

넵 자세히 읽어보니 REST방식으로 요청해야되는군요. 감사합니다.

1개의 좋아요

안녕하세요. 지난번에 답변주신 내용으로 개발을 하다보니 몇가지 궁금한게 생겨서 다시 질문드립니다.

혹시 가능하시다면 답변 부탁드립니다.

  1. Kakao.Auth.login()
    여러 레퍼런스들에서 Kakao.Auth.login()을 사용하라는 글이 있습니다. 하지만 라이브러리 v1에서 v2로 변경되면서 해당 방식은 사용하면 안되는 것 같은데요. 혹시 지원종료 시점이 따로 있을까요?

  2. REST API를 이용해서 Access Token을 발급받는 과정을 Client에서 진행하다보면 REST API KEY가 노출되는데요. 혹시 해당 키가 노출되어도 보안상에 이슈가 발생하는 케이스가 없을까요?

  3. 인가코드와 AccessToken을 모두 백엔드에서 처리한 후에 필요한만큼의 정보만 클리어인트에서 처리하는방식이 포럼에서 추천되는것 같은데요. 공식 문서에는 Javascript에서 처리하는 방식이 자세하게 안내되어있어, 이상적인 컨셉이 궁금합니다.
    만약 Client와 Server가 존재하는 2티어 이상의 서비스라면 코드와 토큰 모두 서버에서 처리하는게 바람직할까요?

감사합니다.

안녕하세요.

  1. 해당함수는 이제 sdk v2 부터 제공하지않고 있으며 종료일은 미정이나 사용하지 않는 것을 권장드립니다.
    ㄴ 팝업은 각종 브라우저와 개별 서비스 인앱브라우저에서 제약하고 있는 추세입니다.

  2. 인가코드 요청 시, 사용해야 하므로 노출을 막을 방법은 없으나 악의적인 사용에 노출 되지 않도록 적절한 보안 장치와 함께 사용하시면됩니다. 보안 권장사항

  3. JS SDK authorize를 사용해서 모바일 환경일때 ID/PW 입력 없이 카카오톡 앱으로 인증하고, 백엔드로 리다이렉트 URI를 설정해서 이후 과정은 Server에서 진행하시는 것을 추천드립니다.

구현하시는 상황과 목적에 따라 다르겠지만, 불특정 다수가 접근 할 수 있는 웹환경이라면, 백엔드에 일임하는 것을 추천합니다.

감사합니다.