API Call Sequence
EMP 연동 방식 중 EMP가 제공하는 웹 로그인을 사용하는 경우에 대해, EMP API 호출 흐름을 설명합니다.
EMP API는 OAuth 2.0 - Authorization Code Grant Type 프로토콜에 기반하여 설계되었습니다. (단, 변수명/ required option 등은 표준과 다소 차이가 있을 수 있습니다.)
다음 용어 정의를 참고하십시오.
- Authorization Server (OAuth 2.0): EMP Proxy 서버에 해당합니다. 이하 EMP로 표현합니다.
- Client Application (OAuth 2.0): 여러분의 서비스에 해당합니다. 이하 서비스로 표현합니다.
① Request Authorization (Login)
API to be Used
GET {{EMPBaseUrl}}/authorize
Sequence
- 서비스는
GET {{EMPBaseUrl}}/authorize
를 호출하여, EMP에 LG 계정 (혹은 LG 계정과 연동하는 3rd party 계정) 로그인을 요청합니다. 이때, 여러분의 서비스는 다음 값을 전달해야 합니다.- client_id: EMP가 서비스를 식별하기 위한 값으로, LG가 발급한 EMP App Key를 입력
- redirect_uri: 서비스의 Callback URI (EMP가 로그인 프로세스를 완료한 후 사용자의 웹 브라우저(user-agent)를 서비스에 돌려줄 때 돌아갈 주소)
- response_type:
code
로 입력 - sate: 크로스 사이트 요청 위조 (cross-site request forgery) 방어를 위한 값
- EMP는 사용자의 웹브라우저(user-agent)를 로그인 페이지로 이동시키고 로그인을 진행합니다.
- 로그인이 정상적으로 이루어지면 EMP는 인증 코드 (Authorization Code)를 서비스에 전달합니다. 이때, EMP는 사용자의 웹브라우저를 서비스가 제공한 redirect_uri로 보내며, 인증 코드는 redirect_uri에 query string으로 포함되어 서비스에 전달됩니다.
② Request Access Token
API to be Used
POST {{EMPBaseUrl}}/token (grant_type=authorization_code)
Sequence
- 서비스는
POST {{EMPBaseUrl}}/token
을 호출하여, EMP에 액세스 토큰 발급을 요청합니다. 이때, 여러분의 서비스는 다음 값을 전달해야 합니다.- client_id: EMP가 서비스를 식별하기 위한 값으로, LG가 발급한 EMP App Key
- code: EMP가 발급한 인증 코드 (Authorize 요청 후 EMP로부터 돌려받은 redirect_uri에 포함되어 있음)
- redirect_uri: 서비스의 Callback URL (Authorize 요청 시 사용한 값과 동일한 값 입력)
- grant_type:
authorization_code
로 입력 - backend_url: EMP 로그인 후 전달받은 backend_url (EMP API v2를 사용하는 경우에만 입력)
- EMP는 서비스를 인증하고, Authorization Code를 검증하고, Redirect_URI를 확인합니다.
- 모든 것이 정상이라면 EMP는 API 호출 응답 결과로 서비스에 액세스 토큰 (
access_token
)을 발급합니다.