axios 에러

권태형·2023년 5월 10일
0

bnb Back-Server Project

목록 보기
7/31
post-thumbnail

AxiosError: Request failed with status code 400

카카오 로그인을 구현하는데 계속 위와같이 엑시오스 에러가 발생한다. 분명 넣어주라는거 다 넣어줬고 타입도 다 맞춰줬는데도 왜 안되는지 도통 알 수가 없었다.

async kakaoLogin(apikey: string, redirectUri: string, code: string) {
    const config = {
      grant_type: 'authorization_code',
      client_id: apikey,
      redirect_uri: redirectUri,
      code,
    };
    const params = new URLSearchParams(config).toString();
    const url = `https://kauth.kakao.com/oauth/token?`;
    const headers = {
      'Content-type': 'application/x-www-form-urlencoded;charset=utf-8',
    };

    // const a = await this.http.post(url, params, { headers }).toPromise();
    const a = await axios.post(url, params, { headers }).then((res) => {
      return res.data;
    });

    console.log(a);
  }

처음엔 nestJs에 있는 HTTP모듈의 httpservice.post를 사용해서 axios요청을 시도하였으나 observable객체가 반환되었다. 이를 다시 promise객체를 받으려고 찾아보니 .toPromise()라는 함수가 있길래 사용하려 했는데 이 함수는 이제 사용되지 않는 오래된 것이였다. 일단 실행을 해보았지만 역시나 에러를 뿜어냈다.

그래서 그냥 일반적인 axios요청을 시도했는데도 똑같이 같은 에러를 뿜어내고 있었다. 아 대체 이유가 뭐야 넣을꺼 다 넣어줬는데...

근본적인 에러메시지는 AxiosError: Request failed with status code 400으로 400에러가 나왔으니 뭔가 잘못 넣어줬거나, 반드시 필요한 것을 빼먹었거나 라고 생각해서 문제를 해결하는데 많은 시간을 잡아 먹었다.

세상 나와 같은 에러메시지를 경험하는 경우는 있겠지만 완전히 똑같은 에러 상황을 경험하는 사람은 거의 찾기 힘들테니까..

그렇게 구글링을 쭉 하다가 카카오 데브톡에 올라온 2020년 11월 문의글을 읽게 되었다.

같은 에러를 같은 위치에서 경험하는데 이분은 당사의 카카오 로그인에서 일부는 로그인이 잘되고, 일부는 안되는 경우가 발생하고 있다고 했다. 상황은 달랐는데 카카오의 답변을 보고 내 에러를 눈치챌 수 있었다.

나는 하나의 시크릿 창을 열어서 코드를 수정하고 서버를 다시 동작시킨 후 F5새로고침을 통해 현 상태를 확인했었는데, 이때 항상 같은 코드가 계속해서 들어가서 400에러가 반환되고 있었던 것이었다.

해당 창을 끄고 새로 창을열어서 다시 로그인을 진행하니 아무일도 없었던 것 처럼 깔끔하게 결과를 뱉어냈다.

profile
22년 12월 개발을 시작한 신입 개발자 ‘권태형’입니다. 포스팅 하나하나 내가 다시보기 위해 쓰는 것이지만, 다른 분들에게도 도움이 되었으면 좋겠습니다. 💯컬러폰트가 잘 안보이실 경우 🌙다크모드를 이용해주세요.😀 지적과 참견은 언제나 환영합니다. 많은 댓글 부탁드립니다.

0개의 댓글