LG U+ 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. Request - Response
  1. Open API 토큰 생성
  2. CDN3.0 v2

Curl 토큰 생성

Last updated 1 year ago

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 수정 사용
curl -X GET \
  https://api.lgcdn.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.lgcdn.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. Request - Response

  • {{url}} : https://api.lgcdn.com 입력

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

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"
}'
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