OAuth 2.0 프로토콜

개요

엑솔라 로그인은 사용자 등록 및 인증용으로 OAuth 2.0 표준 프로토콜을 지원합니다. OAuth 2.0은 클라이언트 역할을 리소스 소유자로부터 분리합니다. 리소스는 소유자가 제어하고 서버가 호스트합니다. 보호된 리소스에 액세스하려면 클라이언트는 액세스 특성을 정의하는 문자열인 액세스 토큰을 가져와야 하며 리소스 소유자의 자격 증명을 사용하지 않습니다. 리소스 소유자의 승인 아래 서버는 액세스 토큰을 제삼자 클라이언트에게 사용을 위해 줍니다. Auth 2.0 프로토콜에 대한 자세한 정보는 공식 웹사이트에서 확인할 수 있습니다. 사용자 JWTaccess_token입니다.

클라이언트와 엑솔라 로그인 서버 사이의 상호 작용 흐름:

OAuth 2.0 프로토콜 설정 방법:

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

OAuth 2.0 클라이언트 연결

  1. 게시자 계정으로 이동하여 로그인 프로젝트 > 일반 설정 > 권한 부여 > OAuth 2.0 인증을 엽니다.
  2. 연결을 클릭합니다.
  3. 모달 창에서 다음을 지정합니다.
    1. 클라이언트 이름.
    2. OAuth 2.0 리디렉션 URI. Login API 호출에 대한 redirect_uri 매개 변수.
    3. 인증 유형: 공용 또는 기밀.

Note
클라이언트 유형에 관한 세부 정보는 The OAuth 2.0 Authorization Framework를 참조하세요. Login API로 작업하는 경우:
  • 비밀 클라이언트는 액세스 토큰 가져오기 및 업데이트를 위해 Generate JWT 호출를 호출할 때 클라이언트 ID비밀 키 사용을 요구합니다.
  • 공용 클라이언트는 클라이언트 ID 사용만을 요구합니다.
  • JWT auth by username and password호출은 공용 클라이언트만 이용 가능합니다.

  1. 연결을 클릭하세요.

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

클라이언트 ID비밀 키를 가져오는 방법:

  1. 게시자 계정으로 이동하여 로그인 프로젝트 > 일반 설정 > 권한 부여 > OAuth 2.0 인증을 엽니다.
  2. 클라이언트 블록에서 연결/편집을 클릭합니다.

이러한 설정이 있는 창이 OAuth 2.0 클라이언트 연결 후에 자동으로 열립니다. 클라이언트 ID비밀 키Login API 호출용 client_idclient_secret 매개 변수와 일치합니다. OAuth 2.0 클라이언트 작업 시 이러한 설정을 사용합니다.

Note
귀하의 애플리케이션 측에서 OAuth 2.0 구현을 하려면 클라이언트 라이브러리가 제공하는 디버깅이 잘된 코드를 사용하는 것을 권장합니다. 귀하 자신과 사용자를 보호하는 데 도움이 됩니다.

애플리케이션 측 통합

통합 가능 방법:

Login API로 작업할 때 scope 매개 변수를 사용할 수도 있습니다. 가능한 매개 변수의 값:

  • 액세스 토큰 업데이트를 위한 offline. scope=offline을 등록 또는 인증 호출로 전달하는 것이 요구됩니다.
  • 소셜 네트워크를 통한 사용자 인증 시 추가 사용자 이메일 요청을 위한 email. 제품 로그인을 이전 버전의 로그인 위젯으로 통합한 경우 이 값을 설정하십시오. 소셜 인증 동안에 이메일 수집 지침을 참조하십시오.

로그인 위젯을 통한 통합

로그인을 위젯을 통해 통합하는 경우:

  • 위젯 2.0: client_id, response_type, state, redirect_uri초기화 코드에 추가합니다. scope 매개 변수도 추가할 수 있습니다. redirect_uri 매개 변수의 HTTP/HTTPS 체계를 https://example.com에서처럼 지정해야 합니다 .

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>

  • 이전 버전 위젯: redirect_uriclient_id 매개 변수를 초기화 코드에 추가합니다. scope 매개 변수도 추가할 수 있습니다. redirect_uri 매개 변수의 HTTP/HTTPS 체계를 지정해야 합니다 .

Copy
Full screen
Small screen
<script type="text/javascript">
XL.init({
  projectId: 'LOGIN_PROJECT_ID',
  locale: 'en_US',
  redirectUri: 'REDIRECT_URI',
  clientId: 'CLIENT_ID',
  state: 'CUSTOM_STATE',
  scope: 'SCOPE'
});
</script>

Login API를 통한 통합

사용자 등록 및 인증용으로 API 요청을 OAuth 2.0 프로토콜에 대해 사용합니다. JWT 표준용으로 이미 요청을 통합하였다면 OAuth 2.0 요청을 호출하여 이를 교체합니다.

API 인증 요청 호출 시 액세스 토큰용 code 매개 변수를 교환합니다.

엑솔라 SDK를 통한 통합

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

액세스 토큰 가져오기

Generate JWT 호출을 grant_type=authorization_code 매개 변수와 사용하여 액세스 토큰을 가져옵니다. code 매개변수는 토큰을 가져오기 위해 필요하며 이는 사용자 인증 또는 등록 후에 redirect_uri에 전달됩니다.

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

액세스 토큰 업데이트

엑솔라 로그인 서버는 액세스 토큰을 생성하고 성공적으로 인증된 각 사용자를 위한 새로운 세션을 만듭니다. 기본적으로 토큰의 만료 시간은 1시간입니다.

Generate JWT 호출을 사용하여 토큰 업데이트:

  • 첫 번째 호출은 grant_type=authorization_code 매개 변수와 사용자 인증 후에 받은 code 매개 변수를 사용합니다.
  • 토큰이 만료된 후의 후속 호출에 대해서는 grant_type=refresh_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

이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.
이 페이지 평가
이 페이지 평가
개선해야 할 점이 있을까요?

답하기 원하지 않습니다

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

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

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