KT Cloud CDN 사용 설명서
  • CDN 서비스 소개
  • OTP 로그인 방식 안내
  • 통계
    • Dashboard
    • Traffic
    • Visitor
    • Location
    • Contents
    • Authentication
  • CDN 관리
    • Service
    • Mailing
    • Purge
    • Diagnostics
    • Account
  • 콘텐츠 접근 인증
    • 접근 인증
    • 보안 토큰
    • 토큰 생성 예제
  • Open API 토큰 생성
    • CDN3.0 v3
      • Postman 토큰 생성
      • Curl 토큰 생성
    • CDN3.0 v2
      • Postman 토큰 생성
      • Curl 토큰 생성
  • 문제 해결
    • Tech Support
  • 용어 설명
Powered by GitBook
On this page
  • Token 인증
  • API summary
  • HOW TO USE
  • POST Token
  • example.

Was this helpful?

  1. Open API 토큰 생성
  2. CDN3.0 v2

Curl 토큰 생성

Last updated 1 year ago

Was this helpful?

Token 인증

모든 요청은 HTTPS 기반이며 Token을 통해 인증합니다.

사용자 이름과 비밀 번호로 Token을 발급받습니다. Request에 사용자 이름과 비밀 번호 대신에 Token을 사용합니다. Token에는 유효기간이 있으며, 그 이후에는 재발급이 필요합니다.

둘 중 한 가지 방법 선택

  1. 요청 header의 X-Auth-Token에 'Token'을 사용

  2. Authentication에 'Bearer '와 함께 'Token'을 사용

API summary

Operation
Method
Endpoint

Token

POST

/v2/auth/token

Token(v1 형식 호환)

POST

/v2/auth/tokens

HOW TO USE

Window에 curl 설치하기
  1. 접속 -> Download 메뉴 클릭

  1. 자신의OS 사양에 맞는 파일 다운로드

  1. 다운로드 파일 압축해제 후 curl.exe 파일 설치

  1. 작업창에서 sysdm.cpl로 검색하여 시스템 속성 열기

  1. 고급 탭 > 환경변수 > path > 편집

  1. 새로만들기에 curl.exe 파일 경로 추가 > 확인

  1. cmd창에서 curl 사용 가능

Token

api.example.com 수정 사용
// Some code
curl -X GET \
  https://api.example.com/v2/service/service/test-service/domain \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNvbGNodGVzdCIsImlhdCI6MTU0...' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache'

Token(v1 형식 호환)

api.example.com 수정 사용
curl -X GET \
  https://api.example.com/v2/service/service/test-service/domain \
  -H 'X-Auth-Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNvbGNodGVzdCIsImlhdCI6MTU0O...' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache'

POST Token

https://api.lgucdn.com/v2/auth/token?expires_in=1d

v2 인증을 위한 Access Token을 발급받는 신규 인증 API입니다.

인증 받은 Token은 요청 헤더에 Authorization으로 설정하여 보냅니다.

Headers

Content-Type

application/json

JavaScript Object Notation JSON; Defined in RFC 4627

PARAMS

expires_in

1d

Body raw

{
    "username": "test-username",
    "password": "test-password"
}

example.

  • {{url}} : https://api.ktcdn.co.kr 입력

  • {{username}}, {{password}} : adp에서 부여받은 ID와 PW 입력

Request

Example request
curl --location 'https://api.lgucdn.com/v2/auth/token?expires_in=1d' \
--header 'Content-Type: application/json' \
--data '{
	"username": "test-username",
	"password": "test-password"
}'

Response

example response
{
  "data": [
    {
      "svc_name": "testsvc",
      "svc_status": "0300",
      "svc_type": "Delivery",
      "svc_ext_type": "huge",
      "svc_domain": "testsvc.ktcdn.co.kr",
      "origins": [
        "testsvc.amazonaws.com/test-online"
      ],
      "sp_svc_domains": [
        "testsvc.testsolbox.com"
      ],
      "use_ssl": "no",
      "ssl_protocol": [
        "TLSv1.2",
        "TLSv1.1"
      ],
      "certificate_file": "",
      "certificate_key_file": "",
      "certificate_chain": "",
      "use_sp_svc_domains": "yes",
      "positive_ttl": 3600,
      "use_secure_token": "no",
      "secure_token_secrets": [
        "PSK1"
      ],
      "secure_token_type": "jwt",
      "use_streaming": "no",
      "use_ignore_query": "no",
      "use_referers": "no",
      "referers": [],
      "use_redirect_https": "no"
    }
  ]
}

Example Request
POST /v2/auth/token?expires_in=1d HTTP/1.1
Host: api.lgucdn.com
Content-Type: application/json
Content-Length: 62

{
	"username": "test-username",
	"password": "test-password"
}
Example Response
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}

Node JS- Axios

Request
var axios = require('axios');
var data = JSON.stringify({
  "username": "test-username",
  "password": "test-password"
});

var config = {
  method: 'post',
maxBodyLength: Infinity,
  url: 'https://api.lgucdn.com/v2/auth/token?expires_in=1d',
  headers: { 
    'Content-Type': 'application/json'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});
Response
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}r

Node JS- Native

Example Request
var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.lgucdn.com',
  'path': '/v2/auth/token?expires_in=1d',
  'headers': {
    'Content-Type': 'application/json'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = JSON.stringify({
  "username": "test-username",
  "password": "test-password"
});

req.write(postData);

req.end();
Example Response
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}

Example Request
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n\t\"username\": \"test-username\",\n\t\"password\": \"test-password\"\n}");
Request request = new Request.Builder()
  .url("https://api.lgucdn.com/v2/auth/token?expires_in=1d")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
Example Response
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}

Example Request
var options = new RestClientOptions("https://api.lgucdn.com")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/v2/auth/token?expires_in=1d", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@"	""username"": ""test-username""," + "\n" +
@"	""password"": ""test-password""" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);rp
Example Response
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}

유효 기간 입력 Possible values :1y , 5d, 2h, 1m Default : 24시, Max : 1년

*입력가이드 참고
https://curl.se/
https://curl.se