Curl 토큰 생성
Token 인증
모든 요청은 HTTPS 기반이며 Token을 통해 인증합니다.
사용자 이름과 비밀 번호로 Token을 발급받습니다. Request에 사용자 이름과 비밀 번호 대신에 Token을 사용합니다. Token에는 유효기간이 있으며, 그 이후에는 재발급이 필요합니다.
둘 중 한 가지 방법 선택
요청 header의
X-Auth-Token
에 'Token'을 사용Authentication
에 'Bearer '와 함께 'Token'을 사용
API summary
HOW TO USE
Window에 curl 설치하기 https://curl.se/
https://curl.se 접속 -> Download 메뉴 클릭
자신의OS 사양에 맞는 파일 다운로드
다운로드 파일 압축해제 후 curl.exe 파일 설치
작업창에서 sysdm.cpl로 검색하여 시스템 속성 열기
고급 탭 > 환경변수 > path > 편집
새로만들기에 curl.exe 파일 경로 추가 > 확인
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
PARAMS
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"
}
Last updated