Discovery 3. Github OAUTH - access-token이 JSON 객체 형태로 들어오지 않을 때

CHAEIN·2021년 9월 8일
0

Into the Error

목록 보기
3/3

문제상황

Github 소셜 로그인 구현 중 access-token 발급 코드를 작성하였으나 access-token이 원하는 형태로 전달되지 않았다.

내가 받은 응답은 access_token=토큰 내용&token_type=bearer 형태로 생긴 문자열이었다. 이렇게 되면 토큰 내용을 사용하기 위해 정규표현식이든 뭐든 사용해서 해당 부분만 따로 추출해내야 하는데 애초에 내가 원하는 응답 형태는 JSON 객체 형태였기 때문에 다른 방법을 찾아보기로 했다.

해결

post 요청에 헤더에 Accept:application/json옵션을 추가하면 객체 형태로 받을 수 있다!


출처: 깃허브 공식문서

공식문서에는 디폴트 응답이 위 이미지와 같은 객체 형태라 하였으나 내가 받은 응답은 그렇지 못했기 때문에 헤더에 객체 형태로 받아올 수 있는 옵션을 추가해야한다.

const { data } = await axios.post(
    "https://github.com/login/oauth/access_token",
    {
      client_id: clientID,
      client_secret: clientSecret,
      code: authorizationCode,
    },
    { headers: { Accept: "application/json" } }
  );

  res.status(200).send(data);
};

문제 해결!

0개의 댓글