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자리
|
OP | https://{CNTRY}.m.lgaccount.com/emp/v2 |
API List
End Point | Summary | HTTP Method |
---|---|---|
{{EMPBaseURL}}/authorize |
EMP에 로그인 프로세스를 요청합니다. (→ EMP가 로그인 진행, Authorization Code 발급) |
GET |
grant_type = authorization_code |
EMP에 액세스 토큰 발급을 요청합니다. (→ EMP가 access_token 발급, refresh_token 발급) |
POST |
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) 식별자
|
Mandatory |
redirect_uri |
String |
요청 수행 후, EMP가 사용자의 웹브라우저를 서비스로 리다이렉트 해줄 URI
|
Mandatory |
response_type |
String | code 로 입력합니다.
|
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)
|
Mandatory |
grant_type |
String |
참고
|
Mandatory |
backend_url |
String |
EMP 로그인 후 전달받은 backend_url 값 |
Optional |
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에 새로운 액세스 토큰을 요청하기 위해 사용되는 토큰입니다.
|
xxxxxxxxxxxxxxxxxxxx |
oauth2_backend_url |
EMP backend url입니다.
|
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 |
파라미터가 누락됨
|
412 |
required backend_url |
파라미터가 누락됨
|
412 |
required grant_type |
파라미터가 누락됨
|
412 |
required code |
파라미터가 누락됨
|
412 |
required 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 |
grant_type |
String |
참고
|
Mandatory |
backend_url |
String | EMP 로그인 후 전달받은 backend_url 값 | Optional |
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 |
파라미터가 누락됨
|
412 |
required backend_url |
파라미터가 누락됨
|
412 |
required grant_type |
파라미터가 누락됨
|
412 |
required refresh_token |
요청 파라미터가 누락됨
|
401 | not allowed client_id | 허용되지 않은 client_id (EMP에서 발급한 App_key)임 |
500 | oauth date time error | OAuth 통신 오류 |