인증은 Basic, Bearer 인증 두가지를 제공하며.
일반적으로 Basic 인증에 클라이언트 아이디 / 클라이언트 시크릿 키를 이용 합니다.
클라이언트 아이디 / 클라이언트 시크릿 키는 POD Shop Admin 에서 확인 할 수 있습니다.
Bearer 인증의 경우 클라이언트 아이디 / 클라이언트 시크릿 키 노출 방지를 위해 인증 값의 외부 노출이 필요한 경우 토큰을 발급받아 이용합니다.
목차
1. Basic 인증
Authorization: Basic base64({USERNAME}:{PASSWORD})
SQL
복사
Basic 인증 방식은 가장 기본적인 HTTP 인증 방식이에요. 인증 정보로 사용자 ID, 비밀번호를 사용해요.
Base64는 쉽게 복호화할 수 있어요.
단순 base64 인코딩된 사용자 ID와 비밀번호를 HTTP로 전달하면 요청의 보안이 보장되지 않아요.
Basic 인증을 사용하는 요청은 꼭 HTTPS, SSL/TLS로 통신해야 안전해요.
1.1 인증 헤더
1.
API 정보 페이지 내에서 Client ID / Client Key 확인
2.
ClientID뒤에 :를 추가 하고 뒤에 Client Key 를 추가 후 base64 인코딩. 콜론을 빠트리지 않도록 주의.
base64('abcdefgsaasdf:XasddfajljdalsjfXFDAelo13savSDFsdf')
_____________ __________________________________
Client ID Client 시크릿
Plain Text
복사
3.
아래 명령어로 터미널에서 실행시 인코딩 된 값을 얻을 수 있습니다.
echo -n 'abcdefgsaasdf:XasddfajljdalsjfXFDAelo13savSDFsdf' | base64
Shell
복사
4.
인코딩된 값을 API 의 Basic 인증헤더에 사용
Authorization : Basic YWJjZGVmZ3NhYXNkZjpYYXNkZGZhamxqZGFsc2pmWEZEQWVsbzEzc2F2U0RGc2Rm
Shell
복사
1.2 인증실패
클라이언트 아이디 / 클라이언트 시크릿 키 인증에 실패 할 경우
HTTP Status 401 을 응답 받습니다.
2. Bearer 인증
Authorization: bearer [Access Token]
SQL
복사
bearer 과 access_token을 인증 헤더에 입력하여 API 를 호출 해요.
2.1 Get Access Token
인증
1. Basic 인증 이용
POST /ac/oauth/ext/token
•
요청 예시
curl --location --request POST 'https://dev-api.pod.shop/ac/oauth/ext/token' --header 'Authorization: Basic YXJ0sdfY2xvdWQ6dfRDV4TEhFQ3lDdfaMWxoaEdsRDllc2dfZrc3JJNsGlLdzl1T1k='
Shell
복사
Response
Name | Type | |
access_token | String | 엑세스 토큰 |
token_type | String | 토큰 유형 |
expires_in | Number | 엑세스 토큰 만료일자 |
refresh_token | String | 리프레시 토큰 |
refresh_expires_in | Number | 리프레시 토큰 만료 기간 |
•
응답 예시
{
"access_token": "......",
"token_type": "bearer",
"expires_in": 3599,
"refresh_token": ".......",
"refresh_expires_in": 1209599
}
JSON
복사
2.2 Get Access Token using refresh token
POST /ac/oauth/ext/token/refresh
Body Parameter
Name | Type | |
refreshToken | String | 리프레시 토큰 |
•
요청 예시
curl --location --request POST 'https://dev-api.pod.shop/ac/oauth/external/abcdefg/refresh?refreshToken=[refreshTokenValue]' --header 'Authorization: Basic YXJ0sdfsdfY2xvdWQ6dfRDsdfV4TEhFQ3lDdfaMWxqweoaEdsRDllc2adfZrc3JJNqsGlLdzl1T1k='
Shell
복사
Response
Name | Type | |
access_token | String | 엑세스 토큰 |
token_type | String | 토큰 유형 |
expires_in | Number | 엑세스 토큰 만료일자 |
refresh_token | String | 리프레시 토큰 |
refresh_expires_in | Number | 리프레시 토큰 만료 기간 |
•
응답 예시
{
"access_token": "......",
"token_type": "bearer",
"expires_in": 3599,
"refresh_token": ".......",
"refresh_expires_in": 1209599
}
JSON
복사
클라이언트 아이디 / 클라이언트 시크릿 확인
•
클라이언트 아이디 / 클라이언트 시크릿 : API 연동시 클라이언트 식별에 이용
•
클라이언트 시크릿은 외부 노출 되면 안됩니다. GitHub, 클라이언트 코드 등 외부에서 접근 가능한 곳에 추가하지 마세요.