엘리스 로그인 연동 개발 가이드
이 문서는 엘리스에 OAuth 기반으로 로그인을 연동하기 위한 개발절차를 안내합니다.
1. 애플리케이션 등록
엘리스 로그인을 연동하기 위해서는 먼저 애플리케이션 이름과 Redirect URI 를 등록해야 합니다. backend@elicer.com 메일로 아래 정보를 보내주시면 내부에서 등록 후 안내드리겠습니다.
- 애플리케이션 이름
- Redirect URI (최대 5개, https 필수)
- 로그인 완료 이후 결과를 받아볼 페이지의 주소를 입력합니다. (예시: https://my-site.com/elice/ouath/okay)
내부 등록 프로세스가 완료된 후 아래의 정보를 안내해드립니다.
- client_id
- client_secret
- ELICE_WEB_URL (개발)
- ELICE_SERVER_URL (개발)
- ELICE_WEB_URL (운영)
- ELICE_SERVER_URL (운영)
2. 엘리스 로그인 연동 URL 생성하기
엘리스 로그인 연동 버튼을 클릭했을 때 엘리스 로그인 화면으로 이동시키기 위한 API 호출 방법에 대해 소개합니다.
아래의 요청 변수를 채워 API 를 호출하면 사용자는 엘리스 로그인 화면으로 리다이렉트 됩니다.
해당 로그인 화면에서 사용자가 로그인을 완료하면 결과와 함께 Redirect URI 로 다시 리다이렉트 됩니다.
요청 URL 정보
| 메서드 | 요청 URL | 응답 형태 | 설명 |
|---|---|---|---|
| GET | https://{ELICE_WEB_URL}/oauth/authorize | URL 리다이렉트 | 엘리스 로그인 인증 요청 |
요청 변수 정보
| 요청 변수명 | 타입 | 필수 여부 | 기본값 | 설명 |
|---|---|---|---|---|
| client_id | string | Y | - | 애플리케이션 등록 시 발급받은 Client ID 값 |
| redirect_uri | string | Y | - | 애플리케이션 등록 시 입력한 Redirect URI 값 중 하나 (URL 인코딩 적용 필요) |
| state | string | Y | - | 보안을 위해 매번 새롭게 생성하는 랜덤한 문자열 값 |
| scope | string | Y | read | 콤마로 구분되는 권한의 목록 |
| lang | string | Y | ko | 사용 언어를 구분하기 위한 값 |
요청문 예시
curl -X GET "https://\{ELICE_WEB_URL\}/oauth/authorize?client_id=myclientid&redirect_uri=redirect_uri=https%3A%2F%2Fmy-site.com%2Felice%2Fouath%2Fokay&state=om22bsq0jz&scope=read&lang=ko"
응답 예시
HTTP/1.1 302 Found
Location: https://my-site.com/elice/ouath/okay?code=okaycode12345&state=om22bsq0jz
3. 접근 토큰 발급 요청
Redirect URI 로 리다이렉트 되며 쿼리 스트링을 통해 전달받은 인증 코드(code)는 접근 토큰(access token)을 발급받는 데 사용됩니다.
인증 코드는 일회용이며, 접근 토큰을 1회 발급하는데 사용된 후 재사용이 불가능합니다.
접근 토큰은 이후 유저정보 API 등 엘리스 REST API 를 호출할 때 사용됩니다.
이 API 는 사용자의 브라우저가 아닌 서버에서 실행되어야 합니다.
요청 URL 정보
| 메서드 | 요청 URL | 응답 형태 | 설명 |
|---|---|---|---|
| POST | https://{ELICE_SERVER_URL}/oauth/token | json | 접근 토큰 발급 요청 |
요청 변수 정보
| 요청 변수명 | 타입 | 필수 여부 | 기본값 | 설명 |
|---|---|---|---|---|
| client_id | string | Y | - | 애플리케이션 등록 시 발급받은 Client ID 값 |
| client_secret | string | Y | - | 애플리케이션 등록 시 발급받은 Client Secret 값 |
| code | string | Y | - | Redirect URI 를 통해 전달 받은 인증 코드 값 |
요청문 예시
curl -X POST "https://\{ELICE_SERVER_URL\}/oauth/token" \
-H "Content-Type: application/json" \
-d '{"client_id":"myclientid","client_secret":"myclientsecret","code": "okaycode12345"}'
응답 정보
| 필드 | 타입 | 설명 |
|---|---|---|
| access_token | string | 접근 토큰 (발급으로부터 1시간 이후 만료) |
응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "your_access_token"
}
4. 접근 토근을 이용하여 유저 정보 API 호출하기
접근 토큰을 사용하여 유저 정보 조회 API를 호출 하는 것이 가능합니다.
요청 URL 정보
| 메서드 | 인증 | 요청 URL | 응답 형태 | 설명 |
|---|---|---|---|---|
| GET | OAuth2.0 | https://{ELICE_SERVER_URL}/oauth/account | JSON | 유저 정보 조회 |
요청 변수 정보
요청 변수는 별도로 없으며, 요청 URL로 호출할 때 아래와 같이 요청 헤더에 접근 토큰 값을 전달하면 됩니다.
요청 헤더
| 요청 헤더명 | 설명 |
|---|---|
| Authorization | 다음 형태의 값 : Bearer {접근 토큰} |
요청문 예시
curl -X GET "https://\{ELICE_SERVER_URL\}/oauth/account" \
-H "Authorization: Bearer your_access_token"
응답 정보
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
| id | String | Y | 동일인 식별 정보 |
| fullname | String | Y | 사용자 이름 |
| String | Y | 사용자 메일 주소 | |
| phone | String | Y | 사용자 휴대전화번호 |
| profile_url | String | Y | 사용자 프로필 사진 URL |
| locale | String | Y | 사용자 지역정보 |
응답 예시
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 12345,
"fullname": "John Doe",
"email": "john.doe@example.com",
"phone": "010-1234-5678",
"profile_url": "https://example.com/profile/johndoe",
"locale": "ko"
}