인증
이해하기

본 가이드는 인증토큰 획득에 대해 안내합니다.
server API를 사용하려면 인증을 해야 하며, 인증방식은 엑세스토큰 발급을 통한 인증방식을 사용합니다.
[목차]
용어 정의
| 용어 | 설명 |
|---|---|
| system Key | 시스템키 (외부시스템 연동을 위한 API호출키) - systemKey를 필수 파라미터로, 각 솔루션별 server API를 통신- 앱 기준으로 systemKey 발급 - 앱 등록시 발급된 systemKey는 선택한 API와 그에 따른 권한/입력한 IP으로만 통신 가능 - 단기/장기토큰 발급API Request body 내 client_id 값 |
| secret Key | 앱 인증에 필요한 값 -인증코드(Authorization Code)를 통해 엑세스 토큰(Access Token) 발급 요청 시 systmem key와 함께 사용-장기/단기토큰 발급API Request body 내 client_secret 값 |
| authorization Code | 엑세스 토큰(access Token)을 발급하기 위해 필요한 인증코드 - 장기/단기토큰 발급API Request body 내 code 값 |
| access Token | server API를 호출하기 위해 인증서버에서 검증하는 토큰 - 앱의 목적에 따라 장기/단기 토큰을 발급받는 API 호출 가능 - 장기/단기토큰 발급 API Responses 내 access_token 값 - server API 호출 시 Request Header 내 Authorization 값 |
| refresh Token | 단기 토큰(acccess Token) 만료 시 이를 갱신하기 위한 용도로 사용되는 토큰 - access Token보다 토큰 만료기간이 김 - 단기 토큰 발급 API Responses로 받는 refresh_token |
| redirect URI | 토큰 발급을 위해 필요한 0auth2.0 유효성 검증용 파라미터로, 필수 입력값입니다. 반드시 HTTPS 프로토콜을 사용해야합니다. |
[systemKey 및 secretKey 확인 방법]
아래 인증정보 영역을 통해 server API 호출에 필요한 systemKey와 secretKey를 확인합니다.
▼ 화면 경로: 셀러어드민 > 상품 > 앱 > 앱 수정

인증 프로세스

[앱 실행]
쇼핑몰 관리자에서 설치된 앱의 '실행'버튼을 클릭하면 인증 프로세스가 시작됩니다.
▼ 화면 경로: 쇼핑몰 관리자 > 앱 서비스 > 앱 서비스 > 설치 리스트

- [authorizationCode 확인]
- 실행 버튼을 누르면 토큰 발급 시 필요한 'authorizationCode'를 request parameter 로 전달합니다.
https://{앱 등록 시 입력한 앱URI}?code=${authorizationCode}&solution=shopby 혹은 godo형태로 새 창 또는 팝업이 열립니다. - [액세스토큰 발급 요청]
- authorizationCode를 사용해서 액세스 토큰(access token) 발급을 요청합니다.
장기토큰 또는 단기토큰 발급 API를 호출하여 토큰을 발급합니다.
토큰 발급 API 호출 시 request body에 authorizationCode, systemKey, secretKey, redirectUrI 값을 입력하여 액세스 토큰을 발급을 요청해야 합니다.
토큰 유형(장기토큰, 단기토큰)
토큰은 쇼핑몰 관리자에 설치된 앱을 기준으로 발급받을 수 있습니다.
쇼핑몰과 단기토큰의 관계는 1:n 이며, 쇼핑몰과 장기토큰의 관계는 1:1 입니다.
1:1관계를 갖는 장기토큰은 신규로 발급받으면 이전에 발급받은 장기토큰의 유효기간과 상관없이 사용 불가한 토큰이 됩니다.
- postauthorization code로 장기 토큰 발급하기
- /auth/token/long-lived
authorization code를 이용해서 장기 access Token(100년)을 발급 받습니다
- [특징]
- 외부 서버 등에서 데이터를 주기적으로 동기화 하거나 server to server 통신을 위한 토큰입니다.
- 셀러어드민 앱 등록 시 입력한 IP에서만 server API를 호출할 수 있습니다.
- 장기토큰(access_token)의 유효기간: 100년 (사실상 무기한이며, 별도 refresh_token이 없습니다)
- [이런 경우 장기토큰을 사용하세요]
- 외부 서버/어드민에서 주기적으로 데이터를 동기화 해야하는 경우
- 쇼핑몰 관리자에 접속하지 않은 상태에서, 서버 간의 주기적인 server API 호출이 필요한 경우
- 단기토큰을 사용하여 API 호출 시마다 계속 토큰을 갱신하는 것이 적합하지 않은 경우
- [발급 방법 (request body)]
- grant_type: authorization_code
- code: 앱 실행 시 발급받은 authorizationCode
- client_secret: 앱 등록 시 발급받은 secretKey
- redirect_uri: 앱 등록 시 입력한 redirectUri
- client_id: 앱 등록 시 발급받은 systemKey
- postauthorization code로 단기 토큰 발급하기
- /auth/token
authorization code를 이용해서 단기 access Token(5분)을 발급 받습니다
- [특징]
- server API 통신 시 사용하는 토큰으로, 쇼핑몰 운영자가 쇼핑몰 관리자에 접근해서 앱URI를 실행 시 발급됩니다.
- 셀러어드민 앱 등록 시 입력한 허용된 IP가 아니더라도, 해당 API를 요청한 장비의 IP에서도server API를 호출할 수 있습니다.
- 토큰 유효기간과 쇼핑몰 관리자 세션만료(계정 로그인 유지시간)시간은 별도이기 때문에 쇼핑몰 관리자를 로그아웃해도 토큰이 유효하다면 server API를 호출할 수 있습니다.
- 토큰의 유효기간(expire_in)이 만료될 경우,리프레시 토큰을 통해 토큰을 갱신할 수 있습니다.
- [이런 경우 단기토큰을 사용하세요]
- 외부 서버/관리자가 없거나 혹은 있더라도, 서버 간의 주기적인 동기화를 하지 않고자 하는 경우
- 쇼핑몰 관리자에서 최초 앱 실행 시 단기토큰으로 일회성으로 인증받은 후 토큰 인증을 추가적으로 계속할 필요가 없는 경우
- [발급 방법 (request body)]
grant_type에 따라, Request body에 입력해야 하는 파라미터가 상이합니다.
최초 발급인 경우 authorizationCode를 통해 발급받을 수 있고, 유효기간이 만료되어 재발급 받는 경우 refresh_token를 통해 발급받을 수 있습니다.
단기토큰의 유효기간은 5분이고, 리프레시 토큰의 유효기간은 24시간입니다.- grant_type: authorization_code 또는 refresh_token
- code: 앱 실행 시 발급받은 authorizationCode
- grant_type이 authorization_code인 경우 입력
- refresh_token: 리프레시 토큰
- grant_type이 refresh_token인 경우 입력
- client_secret: 앱 등록 시 발급받은 secretKey
- redirect_uri: 앱 등록 시 입력한 redirectUri
- client_id: 앱 등록 시 발급받은 systemKey