v1.0 (DR)

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

LG 담당자가 개별적으로 전달

 

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

DR Service Used Only 

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

EMP에 사용자 프로파일 정보를 요청합니다. 

GET 

DR 서비스만 사용 가능하며, ThinQ Connect 서비스는 사용 불가함

로그인 요청 (Authorization)

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

End Point 

{{EMPBaseURL}}/authorize

Method

GET

Request

Query Parameter

Name Description Required

client_id

서비스(Application) 식별자

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

redirect_uri

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

이 API가 호출되면 EMP는 사용자에게 로그인 웹페이지를 제공하고 로그인 프로세스를 진행함. 로그인 프로세스 완료 후 EMP는 사용자의 웹 브라우저 (user-agent)를 다시 서비스로 돌려보내는데, 이때 돌려보내질 url을 의미함.

  • 반드시 UTF-8로 인코딩해야 함
Mandatory

response_type

code로 입력함

OAuth 2.0 Grant Type 중 Authorization Code Grant Type을 사용함을 의미함

Mandatory

state

크로스 사이트 요청 위조(Cross-site request forgery) 방어를 위한 값.

요청 수행 후, EMP가 사용자의 웹 브라우저를 서비스로 다시 리다이렉션할 때 이 값을 포함함

Mandatory

Request Example

{{EMPBaseUrl}}/authorize?response_type=code&client_id={{xxxxxxx}}&redirect_uri={{xxxxxxx}}&state={{xxxxxxx}}

Result

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

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

 

Error Code

Error Code Error Message Remark
400

app_id is invalid

client_id가 잘못된 경우

로그인 시 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

Request Example

{{EMPBaseURL}}/token?grant_type=authorization_code&code={{xxxxxx}}&client_id={{xxxxxx}}&redirect_uri={{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

400

App_id Fail

허용되지 않은 App_key (i.e., client_id)

LG.OAUTH.EC.4001

OAuth2 processing error

파라미터가 유효하지 않음 

액세스 토큰 갱신 요청

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

End Point

{{EMPBaseURL}}/token

Method

POST

Request

Query Parameter

Name Description Required

client_id

서비스(Application) 식별자

Mandatory

refresh_token

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

grant_type

refresh_token으로 입력함

이 API 요청을 통해,

  • 액세스 토큰을 요청하는 경우: authorization_code로 입력 
  • 액세스 토큰을 갱신하는 경우 (리프레쉬 토큰으로 액세스 토큰 재발행 요청) : refresh_token  입력 
Mandatory

Request Example

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

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
400 App_id Fail

허용되지 않은 App_key (i.e, client_id) 

LG.OAUTH.EC.4001 OAuth2 processing error

파라미터가 유효하지 않음