Curl 토큰 생성
Last updated
Was this helpful?
Last updated
Was this helpful?
모든 요청은 HTTPS 기반이며 Token을 통해 인증합니다.
사용자 이름과 비밀 번호로 Token을 발급받습니다. Request에 사용자 이름과 비밀 번호 대신에 Token을 사용합니다. Token에는 유효기간이 있으며, 그 이후에는 재발급이 필요합니다.
둘 중 한 가지 방법 선택
요청 header의 X-Auth-Token
에 'Token'을 사용
Authentication
에 'Bearer '와 함께 'Token'을 사용
Token
POST
/v2/auth/token
Token(v1 형식 호환)
POST
/v2/auth/tokens
접속 -> Download 메뉴 클릭
자신의OS 사양에 맞는 파일 다운로드
다운로드 파일 압축해제 후 curl.exe 파일 설치
작업창에서 sysdm.cpl로 검색하여 시스템 속성 열기
고급 탭 > 환경변수 > path > 편집
새로만들기에 curl.exe 파일 경로 추가 > 확인
cmd창에서 curl 사용 가능
// 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'
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'
https://api.lgucdn.com/v2/auth/token?expires_in=1d
v2 인증을 위한 Access Token을 발급받는 신규 인증 API입니다.
인증 받은 Token은 요청 헤더에 Authorization으로 설정하여 보냅니다.
Content-Type
application/json
JavaScript Object Notation JSON; Defined in RFC 4627
expires_in
1d
{
"username": "test-username",
"password": "test-password"
}
{{url}} : https://api.ktcdn.co.kr 입력
{{username}}, {{password}} : adp에서 부여받은 ID와 PW 입력
curl --location 'https://api.lgucdn.com/v2/auth/token?expires_in=1d' \
--header 'Content-Type: application/json' \
--data '{
"username": "test-username",
"password": "test-password"
}'
{
"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"
}
]
}
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"
}
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}
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);
});
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}r
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();
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}
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();
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}
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
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InRlc3QtdXNlcm5hbWUiLCJpYXQiOjE1NDg5MTE5NDgsImV4cCI6MTU0ODk5ODM0OH0.WlOm3e62BK1-5SlcbnX3zb8Li-MR3-oo2K-OlyXiGI4"
}
유효 기간 입력 Possible values :1y , 5d, 2h, 1m Default : 24시, Max : 1년