반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- SQL
- node.js
- MySQL
- 활동 킬로칼로리
- 습윤밴드
- JavaScript
- 크로스핏
- 드림코딩
- Til
- code kata
- dql
- dml
- 걷기
- 달리기
- 독서 리뷰
- git
- wecode
- 박스점프
- 위코드
- axios
- 홈트
- 러닝
- node
- Udemy
- express
- github
- 월별 운동일지
- nodejs
- 운동일지
- 메디패치
Archives
- Today
- Total
RISK IT
[TIL42_23.2.26.] [2차 프로젝트] axios 코드 뜯어보기 본문
반응형
Axios란?
Axios는 node.js와 브라우저를 위한 Promise 기반 HTTP 클라이언트다. axios는 동일한 코드베이스로 브라우저와 node.js에서 실행할 수 있다. 서버 사이드에서는 네이티브 node.js의 http 모듈을 사용하고, 클라이언트(브라우저)에서는 XMLHttpRequests를 사용한다. 쉽게 말해서, 백엔드와 프론트엔드가 쉽게 통신을 할 수 있도록 하기 위해서 사용한다.
내 코드로 보기
const kakaoLogin = async (authCode) => {
const getKakaoToken = await axios.get('https://kauth.kakao.com/oauth/token', {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
params: {
grant_type: 'authorization_code',
client_id: process.env.REST_API_KEY,
redirect_url: process.env.REDIRECT_URI,
code: authCode,
},
withCredentials: true,
});
content-type
헤더로 요청 본문의 유형을 나타냄
application/x-www-form-urlencoded
: &으로 분리되고, "=" 기호로 값과 키를 연결하는 key-value tuple로 인코딩되는 값입니다. 영어 알파벳이 아닌 문자들은 percent encoded 으로 인코딩됩니다. 따라서, 이 content type은 바이너리 데이터에 사용하기에는 적절치 않습니다.multipart/form-data
: 바이너리 데이터에 사용text/plain
: 일반 요청
MDN문서 HTTP 요청 메서드-POST
Difference Between form-data, x-www-form-urlencoded and raw ins Postman
grant_type
: grant는 승인하다, 부여, 허가의 의미를 가진다. OAuth2 승인 방식의 종류를 의미하는듯 하다. 이건 어디서 레퍼런스를 얻어야 하지..
withCredentials
: 서로 다른 도메인(크로스 도메인)에 요청을 보낼 때 요청에 credential 정보를 담아서 보낼 지를 결정하는 항목.
(credential은 신임장이라는 뜻을 지님)
여기서, credential 정보가 포함되어 있는 요청은 아래 두 가지 경우를 의미한다.
- 쿠키를 첨부해서 보내는 요청
- 헤더에 Authorization 항목이 있는 요청
따라서, 보내고자 하는 요청이 위 두 가지 항목 중 한 가지라도 포함하고 있다면 withCredentials 옵션을 true로 설정해야만 합니다.
반응형
'IT > TIL' 카테고리의 다른 글
[TIL44_23.2.28.] [2차 프로젝트] axios, fetch 비교 블로그 정리글 (0) | 2023.03.01 |
---|---|
[TIL43_23.2.27.] [2차 프로젝트] 모든 엔드포인트에 대하여 에러핸들링 처리 (0) | 2023.03.01 |
[TIL41_23.2.25.] [2차 프로젝트] 네이버 소셜로그인 구현 시도 (0) | 2023.02.27 |
[TIL40_23.2.24.] [2차 프로젝트] 초기세팅, PET분석, ERD제작 (1) | 2023.02.26 |
[TIL39_23.2.23.] [git] git rebase 명령어 정리 (0) | 2023.02.24 |