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 |
grant_type = authorization_code |
EMP에 액세스 토큰 발급을 요청합니다. (→ EMP가 access_token 발급, refresh_token 발급) |
POST |
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) 식별자
|
Mandatory |
redirect_uri |
요청 수행 후, EMP가 사용자의 웹브라우저를 서비스로 리다이렉트 해줄 URI 이 API가 호출되면 EMP는 사용자에게 로그인 웹페이지를 제공하고 로그인 프로세스를 진행함. 로그인 프로세스 완료 후 EMP는 사용자의 웹 브라우저 (user-agent)를 다시 서비스로 돌려보내는데, 이때 돌려보내질 url을 의미함.
|
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)
|
Mandatory |
grant_type |
String |
|
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에 새로운 액세스 토큰을 요청하기 위해 사용되는 토큰입니다.
|
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 |
---|---|---|
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 |
이 API 요청을 통해,
|
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 |
파라미터가 유효하지 않음 |