OAuth 2.0: 연결

작동 방식

엑솔라 로그인은 OAuth 2.0 프로토콜 기반 사용자 인증을 지원합니다. OAuth 2.0 프로토콜에 대한 상세 정보는 다음 공식 웹사이트를 참조하세요.

OAuth 2.0 프로토콜에 대한 엑솔라 로그인 API 메소드 포맷은 여기에 기술되어 있습니다.

사용자

엑솔라 로그인을 통합하고 엑솔라 혹은 PlayFab 데이터베이스를 사용하는 파트너.

획득 방법

  1. OAuth 2.0 설정을 위해 여러분 계정 관리자에 매개변수를 전송.
  2. 프로젝트 통합 업데이트.

OAuth 2.0를 위해 설정 전송

다음 매개변수를 여러분 계정 관리자에게 전송:

매개변수설명
scope사용자 데이터에 대한 클라이언트 접근 제한. 가능한 값:
  • offline으로 사용자 JWT 업데이트로,Generate User JWT 메소드를 grant_type=refresh_token로 호출하는 경우. scope=offline을 등록 혹은 인증 메소드에 전달하여야 합니다.
  • SNS를 통해 사용자를 인증하는 경우, 추가 사용자 이메일 요청을 위한 email(레시피 참조).
redirect_uri요청에 성공적으로 응답할 때 사용자를 재전송하기 위한 URL. 사용자 데이터를 확인하는 매개변수(code, state)가 재전송 중 URL에 전달됩니다.

프로젝트 프로토콜 연결 후, 계정 관리자가 아래 설명된 데이터를 여러분께 송부합니다. API 메소드 호출 시 값이 해당 매개변수에 전달되어야 합니다:

  • client_id — 여러분의 OAuth 2.0 클라이언트 ID.
  • client_secret — 여러분 OAuth 2.0 클라이언트의 비밀 키.

프로젝트 통합 업데이트

로그인 통합 유형에 따른 프로젝트 설정 업데이트 절차:

위젯을 통한 통합 업데이트

  1. 위젯을 통해 통합하는 경우:
    • 위젯 2.0의 경우: client_id, response_type, stateredirect_uri초기화 코드에 추가합니다. 또한 scope 매개변수를 추가할 수 있습니다. HTTP/HTTPS 스킴을 redirect_uri 매개변수에 명시해야 하는데 다음 https://example.com과 같습니다.

예제:

<script>
const xl = new XsollaLogin.Widget({
  projectId: '[Login ID]',
  preferredLocale: 'en_US',
  clientId: '[client_id]',
  responseType: 'code',
  state: '[custom_state]',
  redirectUri: '[redirect_uri]'
});
</script>

    • 이전 버전 위젯의 경우 redirect_uriclient_id 매개변수를 초기화 코드에 추가합니다. HTTP/HTTPS 스킴을 redirect_uri 매개변수에 명시해야 합니다.

예제:

<script type="text/javascript">
XL.init({
  projectId: '[Login ID]',
  callbackUrl: '[callbackUrl]',
  locale: 'en_US',
  redirectUri: '[redirect_uri]',
  clientId: '[client_id]'
});
</script>

  1. 성공적인 사용자 인증 이후에 Generate User JWT 메소드를 사용하여 JWT를 가져옵니다. JWT를 가져오기 위해 필요한 code 매개변수가 사용자 인증 또는 등록 후에 redirect_uri에 전달됩니다.

예제:

POST https://login.xsolla.com/api/oauth2/token

Headers:
Content-Type: application/x-www-form-urlencoded

Body:
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback

엑솔라 로그인 API를 통한 통합 업데이트

아래 나열된 OAuth 2.0 프로토콜 API 메소드를 통하여 사용자를 인증합니다. 이미 JWT 프로토콜에 대한 메소드를 통합한 경우, OAuth 2.0 메소드를 호출하여 이를 교체합다.

등록

Register 메소드를 통해 새 사용자를 추가합니다.

예제:

POST https://login.xsolla.com/api/oauth2/user?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

Headers:
  Content-Type: application/json

Body:
{
  "username": "John",
  "password": "password123",
  "email": "john@gmail.com"
}

사용자 이름과 비밀번호를 통한 인증

Auth by Username and Password 메소드를 사용하여 code 매개변수를 구합니다.

예제:

POST https://login.xsolla.com/api/oauth2/login?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

Headers:
  Content-Type: application/json

Body:
{
  "username": "John",
  "password": "password123"
}

JWT 가져오기 메소드를 통한 JWT 교환 code.

SNS를 통한 인증

Auth via Social Network 메소드를 사용하여 code 매개변수를 구합니다.

예제:

GET https://login.xsolla.com/api/oauth2/social/google/login_redirect?response_type=code&client_id=11&scope=offline&state=rr21112rrr&redirect_uri=https://my-website.com/callback

JWT 가져오기 메소드를 통한 JWT 교환 code.

JWT 가져오기

Generate User JWT 메소드를 grant_type=authorization_code 매개변수와 사용하여 사용자 JWT를 구합니다. code 매개변수는 JWT를 구하기 위해 필요하며 이는 사용자 인증 또는 등록 후에 redirect_uri에 전달됩니다.

예제:

POST https://login.xsolla.com/api/oauth2/token

Headers:
Content-Type: application/x-www-form-urlencoded

Body:
client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback