본문 바로가기
해외 오픈마켓 - API/Cafe24

[API] Cafe24 - 앱 생성, Oauth 인증, 액세스 토큰 발급 및 재발급

by Johnny's 2023. 4. 13.

Cafe24 앱 생성

# APP 생성하는 방법

Web으로 선택후 App 등록을 해준다.

 

개발 정보 관리에 대한 내용들을 입력한다.

기본정보

API 정보

권한이 필요한 분류를 선택하고, 권한에 대한 부분을 정한다. Read (조회), Read+Write(조회/생성/수정/삭제)

인증정보

Client IDClient Secret KeyOauth 인증받을 때 필요하므로 잘 기록해둔다.(DB저장)

 

# Oauth 인증

1. 인증코드 요청

https://{mall_id}.cafe24api.com/api/v2/oauth/authorize?response_type=code&client_id={client_id}&state={encode_csrf_token}
&redirect_uri={encode_redirect_uri}&scope={scope}

인증코드 Request 형식을 참고해서 URI를 만든다.

해당 URI로 접속을 하면 어드민 계정으로 로그인을 해야한다.

로그인을 하면 API 사용 권한동의함을 누른다.

그리고 앱의 접근 권한에 대해서 동의함을 누르면 설정했던 redirect uri로 code 값을 받을 수 있다.

 

2. 액세스 토큰 발급 (Access Token)

※ base64 encoding 하는 방법

1. 사이트에서 base64로 encoding - base64encode

2. npm btoa를 설치해서 base64로 encoding (node js)

const btoa = require('btoa');

const client_id = 'TESTCLIENTID';
const client_secret = 'TESTCLIENTSECRET';

const result = btoa(`${client_id}:${client_secret}`);
const convert = 'VEVTVENMSUVOVElEOlRFU1RDTElFTlRTRUNSRVQ=';

console.log(result === convert); // true

 

Postman 사용

Request - Headers

Request - body

Response

Axios 사용

Request

require('dotenv').config();
const btoa = require('btoa');
const axios = require('axios');

// Access token 발급
const getAccessToken = () => {

    const client_id = process.env.CLIENT_ID;
    const client_secret = process.env.CLIENT_SECRET;
    const authorization = 'Basic '+btoa(`${client_id}:${client_secret}`);
    const headers = {
        'Content-Type' : 'application/x-www-form-urlencoded',
        'Authorization' : authorization
    };

    const data = {
        grant_type: 'authorization_code',
        code: process.env.CODE,
        redirect_uri: process.env.REDIRECT_URI
    }

    axios({
        method: 'POST',
        url : `https://${process.env.ADMIN_ID}.cafe24api.com/api/v2/oauth/token`,
        headers: headers,
        data: data
    }).then((response) => {
        console.log("response", response.data)
    }).catch((error)=> {
        console.log(error)
    })

}

getAccessToken();

Response

 

3. 액세스 토큰 재발급 (Refresh Token 사용)

POSTMAN 사용

Request - Headers

Request - Body

RESPONSE

 

AXIOS 사용

refresh_token = "lub94wn1LB7u1jDfseCwiA"

Request

require('dotenv').config();
const btoa = require('btoa');
const axios = require('axios');

// Access token 재발급
const refreshAccessToken = () => {

    const client_id = process.env.CLIENT_ID;
    const client_secret = process.env.CLIENT_SECRET;
    const authorization = 'Basic '+btoa(`${client_id}:${client_secret}`);
    const headers = {
        'Content-Type' : 'application/x-www-form-urlencoded',
        'Authorization' : authorization
    };

    const data = {
        grant_type: 'refresh_token',
        refresh_token: process.env.REFRESH_TOKEN
    }

    axios({
        method: 'POST',
        url : `https://${process.env.ADMIN_ID}.cafe24api.com/api/v2/oauth/token`,
        headers: headers,
        data: data
    }).then((response) => {
        console.log("response", response.data)
    }).catch((error)=> {
        console.log(error)
    })

}

refreshAccessToken();

RESPONSE

 

* 참고

- Oauth 인증

 

'해외 오픈마켓 - API > Cafe24' 카테고리의 다른 글

[API] Cafe24 - API 호출 예시  (0) 2023.04.18

댓글