v2.0 (ThinQ Connect)

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): 여러분의 서비스에 해당합니다. 이하 서비스로 표현합니다.

기본 정보

EMPBaseURL

서버 형상

EMPBaseURL 비고
QA

https://qt-{CNTRY}.m.lgaccount.com/emp/v2

CNTRY : ISO 국가코드 2자리

  • 예) 
    • 한국: kr 
    • 미국: us
    • 중국: cn
    • 러시아: ru
    • ......
OP https://{CNTRY}.m.lgaccount.com/emp/v2

 

API List

End Point Summary HTTP Method
{{EMPBaseURL}}/authorize

EMP에 로그인 프로세스를 요청합니다.

(→ EMP가 로그인 진행,  Authorization Code 발급)

GET

{{EMPBaseURL}}/token 

grant_type = authorization_code

EMP에 액세스 토큰  발급을 요청합니다.

(→ EMP가 access_token 발급, refresh_token 발급) 

POST

{{EMPBaseURL}}/token 

grant_type = refresh_token

EMP에 액세스 토큰 재발급을 요청합니다.

(→ EMP가 access_token 재발급)

POST

로그인 요청 (Authorization)

EMP에 로그인 페이지를 요청하여 사용자가 LG 계정 (혹은 LG 계정과 연동하는 3rd party 계정)으로 로그인할 수 있도록 하고, 사용자가 로그인하면 EMP로부터 인증 코드 (Authorization Code)를 전달받습니다.

End Point 

{{EMPBaseURL}}/authorize

Method

GET

Request

Query Parameter

Name Type Description Required

client_id

String

서비스(Application) 식별자

  • EMP(Authorization Server)가 서비스를 식별하기 위해 발급하는 값입니다.
  • LG 담당자에게 요청하여 발급받을 수 있습니다. 
Mandatory

redirect_uri

String

요청 수행 후, EMP가 사용자의 웹브라우저를 서비스로 리다이렉트 해줄 URI 

  • 이 API가 호출되면 EMP는 사용자에게 로그인 웹페이지를 제공하고 로그인 프로세스를 완료한 후 사용자의 웹 브라우저 (user-agent)를 다시 서비스로 돌려보냅니다. 이때, 돌려보낼 주소를 의미합니다.
  • 반드시 UTF-8 인코딩을 해야 합니다. 
Mandatory

response_type

String code로 입력합니다.
  • OAuth 2.0 Grant Type 중 Authorization Code Grant Type을 사용함을 의미합니다.
Mandatory

state

String

크로스 사이트 요청 위조(Cross-site request forgery) 방어를 위한 값입니다. 요청 수행 후, EMP가 사용자의 웹 브라우저를 서비스로 다시 리다이렉션할 때 이 값을 포함합니다.

Mandatory

Request Example

{{EMPBaseURL}}/authorize?response_type=code&client_id={{xxxxxx}}&redirect_uri={{xxxxxx}}&state={{xxxxxx}}

Result

성공 시, EMP는 사용자의 웹 브라우저(user-agent)를 EMP가 제공하는 로그인 페이지로 이동시킵니다. 사용자가 로그인에 정상적으로 성공하면 EMP는 사용자의 웹 브라우저를 서비스로 리다이렉션 해줍니다. 리다이렉션 주소는 파라미터로 전달받은 redirect_uri를 사용합니다.

또한 EMP는 웹 브라우저를 돌려줄 때 redirect_uri의 query string에 인증 코드(Authorization Code)를 포함시킴으로써 서비스에 인증 코드를 발급합니다.

 

Error Code

Error Code Error Message Remark
500

Page not found

요청 정보에 오류가 있는 경우

로그인 시 alert pop-up

Mismathing Redirect URI Error 

등록되지 않은 Redirect_URI로 요청한 경우

로그인 시 alert pop-up

현재 고객님의 국가에서는 지원되지 않는 서비스입니다.

제 3자 동의 약관이 등록되지 않은 경우

액세스 토큰 발급 요청 

EMP에 토큰 발급을 요청합니다. 성공 시 EMP로부터 액세스 토큰과 리프레쉬 토큰을 응답받습니다.

End Point 

{{EMPBaseURL}}/token

Method

POST

Request

Query Parameter

Name Type Description Required

client_id

String

서비스(Application) 식별자

Mandatory

redirect_uri

String GET {{EMPBaseURL}}/authorize 호출 시 사용한 redirect_uri와 동일한 값 Mandatory

code

String

EMP로부터 전달받은 인증 코드 (Authorization Code)

  • 인증 코드 값은 GET {{EMPBaseURL}}/authorize 호출 후 리다이렉션된 URI에 query string으로 포함되어 있습니다. 
Mandatory

grant_type

String

 authorization_code로 입력

참고

  • 액세스 토큰을 요청하는 경우: authorization_code 입력 
  • 액세스 토큰을 재발급 요청하는 경우: refresh_token 입력 
Mandatory

backend_url

String

EMP 로그인 후 전달받은 backend_url 값

Mandatory

Request Example

{{EMPBaseURL}}/token?grant_type=authorization_code&code={{xxxxxx}}&client_id={{xxxxxx}}&redirect_uri={{xxxxxx}}&backend_url={{xxxxxx}}

Result

성공 시, EMP로부터 액세스 토큰, 액세스 토큰 만료 시간, 리프레쉬 토큰 등을 응답받습니다.

Response Body

Name Description Example

access_token

EMP가 발급하는 OAuth 2.0 액세스 토큰입니다.

xxxxxxxxxxxxxxxxxxxx

expires_in

액세스 토큰이 만료되기까지 남은 시간입니다. (단위: sec)

3600

refresh_token

EMP에 새로운 액세스 토큰을 요청하기 위해 사용되는 토큰입니다.

  • API 요청 시, grant_type을 refresh_token으로 입력하지 않은 경우에만 전달되는 값입니다.  
xxxxxxxxxxxxxxxxxxxx

oauth2_backend_url

EMP backend url입니다. 

  • API 요청 시, grant_type을 refresh_token으로 입력하지 않은 경우에만 전달되는 값입니다.
https://example.lge.com/

Response Example

{
  "access_token" : "xxxxxxxxxxxxxxxxxxxx" ,
  "expires_in" : "3600" ,
  "refresh_token" : "xxxxxxxxxxxxxxxxxxxx" ,
  "oauth2_backend_url" : "https://example.lge.com/"
}

Error Code

Error Code Error Message Remark
412

required client_id

파라미터가 누락됨

  • client_id (EMP에서 발급한 App_key) 
412

required backend_url

파라미터가 누락됨

  • Backend_url 

412

required grant_type

파라미터가 누락됨

  • Grant_type 

412

required code

파라미터가 누락됨

  • code 

412

required redirect_uri

파라미터가 누락됨

  • redirect_uri

401

not allowed client_id

허용되지 않은 client_id (EMP에서 발급한 App_key)

500

oauth date time error

OAuth 통신 오류

액세스 토큰 재발급 요청

EMP에 액세스 토큰 재발급을 요청합니다. 요청 시 리프레쉬 토큰을 전달하고 응답으로 새로운 액세스 토큰을 발급 받습니다.  

End Point

{{EMPBaseURL}}/token

Method

POST

Request

Query Parameter

Name Type Description Required

client_id

String

서비스(Application) 식별자

Mandatory

refresh_token

String 로그인 시, 액세스 토큰 발급 요청의 응답 결과에 포함된 refresh_token  Mandatory

code

String

EMP로부터 전달받은 인증 코드 (Authorization Code)를 입력

  • 인증 코드 값은 GET {{EMPBaseURL}}/authorize 호출 후 리다이렉션된 URI에 query string으로 포함됨
Mandatory

grant_type

String

refresh_token으로 입력함

참고

  • 액세스 토큰을 요청하는 경우: authorization_code 입력 
  • 액세스 토큰을 재발급 요청하는 경우: refresh_token 입력 
Mandatory

backend_url

String EMP 로그인 후 전달받은 backend_url 값 Mandatory

Request Example

{{EMPBaseURL}}/token?grant_type=refresh_token&client_id={{xxxxxxx}}&redirect_uri={{xxxxxxx}}&refresh_token={{xxxxxxx}}&backend_url={{xxxxxxx}}

Result

성공 시, EMP로부터 새로운 액세스 토큰과 토큰 만료 시간을 응답받습니다. 

Response Body

Name Type Description Example

access_token

String EMP가 발급하는 OAuth 2.0 액세스 토크입니다.
xxxxxxxxxxxxxxxxxxxx

expires_in

String 액세스 토큰이 만료되기까지 남은 시간입니다. (단위: sec)
3600

Response Example

{
  "access_token" : "xxxxxxxxxxxxxxxxxxxx" ,
  "expires_in" : "3600" ,
}

Error Code

Error Code Error Message Remark
412

required client_id

파라미터가 누락됨

  • client_id (EMP에서 발급한 App_key) 
412

required backend_url

파라미터가 누락됨

  • Backend_url 

412

required grant_type

파라미터가 누락됨

  • Grant_type 

412

required refresh_token

요청 파라미터가 누락됨

  • refresh_token 
401 not allowed client_id 허용되지 않은 client_id (EMP에서 발급한 App_key)임
500 oauth date time error OAuth 통신 오류