OAuth 2.0 프로토콜
개요
로그인 제품은 사용자 등록과 인증을 위해 OAuth 2.0 표준 프로토콜을 지원합니다. OAuth 2.0 표준 인증 프로토콜은 클라이언트 애플리케이션 개발의 용이성에 초점을 맞추며 이를 사용할 경우 사용자 참여가 없어도 액세스 토큰을 갱신할 수 있습니다. OAuth 2.0 프로토콜에 대한 자세한 정보는 공식 웹사이트에서 확인할 수 있습니다. 사용자 JWT를 액세스 토큰으로 사용합니다.
OAuth 2.0 클라이언트와 엑솔라 로그인 서버 사이의 상호 작용은 아래와 같습니다.
OAuth 2.0 프로토콜 설정 방법:
- 로그인 제품을 연결합니다.
- 엑솔라, PlayFab 또는 Firebase 저장소를 설정합니다.
- OAuth 2.0 클라이언트를 연결합니다.
OAuth 2.0 클라이언트 연결
- 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
- 로그인 프로젝트의 옵션에서 구성을 클릭합니다.
- 보안 블록으로 이동하여 OAuth 2.0 섹션을 선택합니다.
- OAuth 2.0 클라이언트를 클릭합니다.
- 모달 창에서 다음을 지정합니다.
- 클라이언트 이름.
- 계정 인증, 인증에 성공한 경우 또는 암호 재설정 후 사용자가 리디렉션되는 URI.
- 인증 유형: 공용, 기밀 또는 서버.
- 서버 인증의 경우:
grant_type=client_credentials
. - 기밀 및 공용 인증의 경우:
grant_type=authorization_code
또는grant_type=refresh_token
.
- JWT 생성 메소드를 호출하여 액세스 토큰을 가져오거나 업데이트할 때 기밀 클라이언트는 클라이언트 ID와 비밀 키를 사용할 것을 요구합니다.
- 공용 클라이언트는 클라이언트 ID 사용만을 요구합니다.
- 사용자 이름 및 암호를 통한 JWT 인증 메소드 호출은 공용 인증에만 사용할 수 있습니다.
- 연결을 클릭합니다.
- 애플리케이션에서 OAuth 2.0 인증을 설정하는 데 필요한 클라이언트 ID와 비밀 키가 생성됩니다.
- 대화창에서 복사 버튼을 사용하여 클라이언트 ID와 비밀 키를 복사합니다.
OAuth 2.0 클라이언트 설정 가져오기
OAuth 2.0 클리아언트를 연결할 때 클라이언트 ID와 비밀 키를 복사하지 않은 경우 이 데이터에 액세스하려면 다음을 수행해야 합니다.
- 관리자 페이지에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
- 로그인 옵션 패널에서 구성을 클릭합니다.
- 보안 블록으로 이동한 후 OAuth 2.0 섹션을 선택합니다.
- 필수 OAuth 2.0 클라이언트 줄에서:
- 클라이언트 ID 필드의 내용을 복사합니다.
- 비밀 키를 복사하기 위해 클라이언트 키를 클릭합니다.
클라이언트 ID와 비밀 키는 로그인 API 메소드의 client_id
와 client_secret
매개변수에 해당합니다. OAuth 2.0 클라이언트 작업 시 이러한 값을 사용합니다.
애플리케이션 측 통합
사용할 수 있는 통합 옵션:
로그인 API와 로그인 위젯으로 작업할 경우 scope
매개변수를 사용합니다. 이때 다음 값을 사용할 수 있습니다.
offline
를 사용하여 액세스 토큰을 새로고침합니다.scope=offline
을 등록이나 인증 방식으로 전달합니다.email
을 사용하여 소셜 네트워크를 통해 인증을 진행할 때 사용자의 이메일 주소를 요청합니다. 로그인 API를 사용하여 로그인 제품을 통합한 경우scope=email
을 등록이나 인증 방식으로 전달합니다. 로그인 위젯을 사용하여 통합하는 경우 이메일 주소 및 전화번호 수집 지침을 사용하여 사용자 이메일 주소 수집 설정을 구성합니다.
로그인 위젯을 통한 통합
로그인 위젯을 사용하여 통합을 구성한 경우 client_id
, response_type
, state
, redirect_uri
매개변수를 초기화 코드에 추가합니다. 관리자 페이지에서 OAuth 2.0 클라이언트를 연결할 때 설정한 값을 redirect_uri
매개변수에서 지정해야 합니다. scope
매개변수도 추가할 수 있습니다.
요청 예시:
- html
<script>
const xl = new XsollaLogin.Widget({
projectId: 'LOGIN_PROJECT_ID',
preferredLocale: 'en_US',
clientId: 'CLIENT_ID',
responseType: 'code',
state: 'CUSTOM_STATE',
redirectUri: 'REDIRECT_URI',
scope: 'SCOPE'
});
</script>
로그인 API를 통한 통합
OAuth 2.0 프로토콜 API 메소드를 사용하여 사용자를 등록하고 인증합니다. 이미 JWT 표준에 대한 메소드를 통합한 경우 OAuth 2.0 메소드 호출로 대체합니다.
인증 메소드 호출 시, 수신한 code
매개변수를 액세스 토큰과 교환합니다.
엑솔라 SDK를 통한 통합
엑솔라 SDK는 OAuth 2.0 프로토콜 기반 인증을 지원합니다. OAuth 2.0 클라이언트를 설정하려면 게임 엔진 또는 플랫폼을 선택하고 지침을 따르세요:액세스 토큰 가져오기
사용자 액세스 토큰을 받으려면 다음 매개변수 값과 함께 JWT 생성 메소드를 사용합니다.
grant_type
매개변수에 해당하는authorization_code
.scope
매개변수에 해당하는offline
(다음에 액세스 토큰을 갱신할 때 필요).client_id
— OAuth 2.0 클라이언트 설정 값.client_secret
— OAuth 2.0 클라이언트 설정 값(공용 OAuth 2.0 클라이언트에는 필요하지 않음).redirect_uri
— 관리자 페이지에서 OAuth 2.0 클라이언트를 연결할 때 설정한 값.- 성공적으로 사용자를 인증하거나 애플리케이션에서 등록한 후 수신한
code
.
API 메소드는 다음 토큰을 반환합니다.
access_token
— 액세스 토큰. 기본 유효 기간은 1시간입니다.refresh_token
— 새로고침 토큰. 유효 기간 제한이 없습니다.
요청 예시:
http
- http
- curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
curl --request POST \
--url https://login.xsolla.com/api/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=authorization_code \
--data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
--data client_id=11 \
--data redirect_uri=https://my-website.com/callback \
--data code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik
액세스 토큰 새로고침
액세스 토큰이 만료되면 refresh_token
과 동일한 grant_type
매개변수와 수신한 새로고침 토큰(refresh_token
)의 마지막 값과 함께 JWT 생성 메소드를 사용하여 액세스 토큰을 새로고침합니다.
API 메소드 응답은 새로운 토큰 쌍인 access_token
액세스 토큰과 refresh_token
새로고침 토큰을 반환하며 이러한 토큰은 다시 새로고침할 수 있습니다.
요청 예시:
http
- http
- curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
curl --request POST \
--url https://login.xsolla.com/api/oauth2/token \
--header 'content-type: application/x-www-form-urlencoded' \
--data grant_type=refresh_token \
--data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
--data client_id=11 \
--data redirect_uri=https://my-website.com/callback \
--data refresh_token=111dfgdfgdf
access_token
과 refresh_token
토큰 쌍은 사용할 수 없게 됩니다. 동시 사용자 세션 수 제한 설정을 변경하려면 고객 성공 매니저에게 문의하거나 csm@xsolla.com으로 이메일을 보내주세요.오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.