OAuth 2.0 프로토콜

개요

로그인 제품은 사용자 등록과 인증을 위해 OAuth 2.0 표준 프로토콜을 지원합니다. OAuth 2.0 표준 인증 프로토콜은 클라이언트 애플리케이션 개발의 용이성에 초점을 맞추며 이를 사용할 경우 사용자 참여가 없어도 액세스 토큰을 갱신할 수 있습니다. OAuth 2.0 프로토콜에 대한 자세한 정보는 공식 웹사이트에서 확인할 수 있습니다. 사용자 JWT를 액세스 토큰으로 사용합니다.

OAuth 2.0 클라이언트와 엑솔라 로그인 서버 사이의 상호 작용은 아래와 같습니다.

OAuth 2.0 프로토콜 설정 방법:

  1. 로그인 제품을 연결합니다.
  2. 엑솔라, PlayFab 또는 Firebase 저장소를 설정합니다.
  3. OAuth 2.0 클라이언트를 연결합니다.

OAuth 2.0 클라이언트 연결

  1. 게시자 계정에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
  2. 로그인 프로젝트의 옵션에서 구성을 클릭합니다.
  3. 탐색 페이지에서 보안 블록으로 이동하여 OAuth 2.0 섹션을 선택합니다.

  1. OAuth 2.0 클라이언트를 클릭합니다.

  1. 모달 창에서 다음을 지정합니다.
    • 클라이언트 이름.
    • 계정 인증, 인증에 성공한 경우 또는 암호 재설정 후 사용자가 리디렉션되는 URI.
    • 인증 유형: 공용, 기밀 또는 서버.

알림
인증 유형(클라이언트 유형)에 대한 정보는 OAuth 2.0 인증 프레임워크기밀 및 공용 애플리케이션을 참조합니다. 서버 및 기밀 인증 유형은 모두 기밀 클라이언트를 사용하지만 애플리케이션에 액세스 권한을 부여하는 방식은 서로 다릅니다(자세한 내용은 애플리케이션 권한 부여 유형 참조).
  • 서버 인증의 경우: grant_type=client_credentials.
  • 기밀 및 공용 인증의 경우: grant_type=authorization_code 또는 grant_type=refresh_token.
로그인 API를 통해 통합을 사용하는 경우 인증 유형 선택 시 다음 특성을 고려해야 합니다.
  • JWT 생성 메소드를 호출하여 액세스 토큰을 가져오거나 업데이트할 때 기밀 클라이언트는 클라이언트 ID비밀 키를 사용할 것을 요구합니다.
  • 공용 클라이언트는 클라이언트 ID 사용만을 요구합니다.
  • 사용자 이름 및 암호를 통한 JWT 인증 메소드 호출은 공용 인증에만 사용할 수 있습니다.

  1. 연결을 클릭합니다.

  1. 애플리케이션에서 OAuth 2.0 인증을 설정하는 데 필요한 클라이언트 ID와 비밀 키가 생성됩니다.

  1. 대화창에서 복사 버튼을 사용하여 클라이언트 ID비밀 키를 복사합니다.

OAuth 2.0 클라이언트 설정 가져오기

OAuth 2.0 클리아언트를 연결할 때 클라이언트 ID와 비밀 키를 복사하지 않은 경우 이 데이터에 액세스하려면 다음을 수행해야 합니다.

  1. 게시자 계정에서 프로젝트를 열고 로그인 섹션으로 이동합니다.
  2. 로그인 옵션 패널에서 구성을 클릭합니다.
  3. 탐색 페이지에서 보안 블록으로 이동한 후 OAuth 2.0 섹션을 선택합니다.
  4. 필수 OAuth 2.0 클라이언트 줄에서:
    • 클라이언트 ID 필드의 내용을 복사합니다.
    • 비밀 키를 복사하기 위해 클라이언트 키를 클릭합니다.

클라이언트 ID와 비밀 키는 로그인 API 메소드의 client_idclient_secret 매개변수에 해당합니다. OAuth 2.0 클라이언트 작업 시 이러한 값을 사용합니다.

알림
애플리케이션에서 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 매개변수도 추가할 수 있습니다.

요청 예시:

Copy
Full screen
Small screen
<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>

Login API를 통한 통합

OAuth 2.0 프로토콜 API 메소드를 사용하여 사용자를 등록하고 인증합니다. 이미 JWT 표준에 대한 메소드를 통합한 경우 OAuth 2.0 메소드 호출로 대체합니다.

인증 메소드 호출 시, 수신한 code 매개변수를 액세스 토큰과 교환합니다.

엑솔라 SDK를 통한 통합

엑솔라 SDK는 OAuth 2.0 프로토콜 기반 인증을 지원합니다. OAuth 2.0 클라이언트를 설정하려면 게임 엔진 또는 플랫폼을 선택하고 다음 지침을 따릅니다.

액세스 토큰 가져오기

사용자 액세스 토큰을 받으려면 다음 매개변수 값과 함께 JWT 생성 메소드를 사용합니다.

API 메소드는 다음 토큰을 반환합니다.

  • access_token — 액세스 토큰. 기본 유효 기간은 1시간입니다.
  • refresh_token — 새로고침 토큰. 유효 기간 제한이 없습니다.

요청 예시:

Copy
Full screen
Small screen
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 새로고침 토큰을 반환하며 이러한 토큰은 다시 새로고침할 수 있습니다.

요청 예시:

Copy
Full screen
Small screen
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

알림
로그인 제품은 기본적으로 최대 5개의 동시 사용자 세션을 지원합니다. 새로운 사용자 인증이 있을 때마다 해당 사용자가 마지막 5개 토큰 쌍보다 먼저 수신한 access_tokenrefresh_token 토큰 쌍은 사용할 수 없게 됩니다. 동시 사용자 세션 수 제한 설정을 변경하려면 계정 관리자에게 문의합니다.
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

의견을 보내 주셔서 감사드립니다!
마지막 업데이트: 2022년 8월 31일

오자 또는 기타 텍스트 오류를 찾으셨나요? 텍스트를 선택하고 컨트롤+엔터를 누르세요.

문제 보고
콘텐츠를 항상 검토합니다. 여러분의 피드백은 콘텐츠를 개선에 도움이 됩니다.
후속 조치를 위해 이메일을 제공해 주세요
의견을 보내 주셔서 감사드립니다!