IT 개발자가 되기위한 여정

컴퓨터 공부를 시작함에 앞서 계획 및 개발에 대한 내용을 풀어나갈 생각입니다.

프로젝트/오키드 마켓 (장기 , 1인)

Naver Cloud Platform [1] - API Header (Signature 생성)

제로시엘 2022. 8. 16. 23:41

 

 

https://api.ncloud-docs.com/docs/common-ncpapi

 

Ncloud API

 

api.ncloud-docs.com

 

기본적인 API 설정이 나와있지만 내가 사용하기 위해 코드를 살짝 변경하였다.
사용중인 환경은 Next.js , Axios이다.

 

사용전 crypto를 설치하여야 한다.

 

$ npm install crypto-js

 

import crypto from "crypto-js";

export default function MakeSignature(url, method) {
  const date = Date.now().toString();
  const space = " ";
  const newLine = "\n";
  const secretKey = process.env.NAVER_ACCESS_SECRIT_KEY;
  const accessKey = process.env.NAVER_ACCESS_KEY;
  const hmac = crypto.algo.HMAC.create(crypto.algo.SHA256, secretKey);
  hmac.update(method);
  hmac.update(space);
  hmac.update(url);
  hmac.update(newLine);
  hmac.update(date);
  hmac.update(newLine);
  hmac.update(accessKey);
  const hash = hmac.finalize();

  return hash.toString(crypto.enc.Base64);
}

리턴 값으로 고유 시그니쳐를 받을 수 있다.
url과 method는 api 종류에 따라 바뀐다.

 

 

엑세스 키와 시크릿 키는 하단 페이지에서 찾아서 가져오면 된다.

 

사용중인 환경상수

NAVER_ID="ncp:sms:kr:숫자:프로젝트명"
NAVER_ACCESS_KEY="ABABABABAB232323"
NAVER_ACCESS_SECRIT_KEY="ABABABABABABABBABABB23323"
MYMAIL="클라우드 네이버 메일"
MYPHONE="휴대폰 전화번호"