로그인 / 사용자 정의 저장소
  문서로 돌아가기

로그인

사용자 정의 저장소

사용자 지정 저장소를 사용하는 경우 다음에 대한 액세스 권한이 있습니다:

상호작용 절차

로그인 API 요청를 사용하는 로그인 위젯 혹은 애플리케이션을 클라이언트로 사용할 수 있습니다. 클라이언트와 엑솔라 로그인 서버 사이의 상호작용 절차는 다음과 같습니다.

  1. 클라이언트가 엑솔라 로그인 서버로 요청을 보냅니다. 요청 형식은 다음 JWTPassword 엔드포인트에 기술되어 있습니다.
  2. 엑솔라 로그인 서버가 여러분의 서버로 요청을 보냅니다. 지침을 따라 요청을 검증합니다.
  3. 엑솔라 로그인 서버가 여러분의 서버의 응답을 처리하여 결과를 클라이언트에게 반환합니다.
  4. 클라이언트는 응답을 처리합니다.

알림
사용자 이메일 주소, 소셜 미디어 데이터 및 사용자 속성은 엑솔라 측에 저장됩니다. 비밀번호는 엑솔라 측에 저장되지 않습니다.
다음 중 한 가지 방법으로 사용자 정보를 전송할 수 있습니다:
  • JASON 개체로 전송.
알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
  • 사용자 특성이 있는 개체의 배열입니다. 개체는 다음과 같은 구조로 되어 있어야 합니다:
매개 변수유형설명
attr_type
string서비스 특성에 대한 사용자의 액세스 수준 정의:
  • client - 사용자가 편집할 수 있는 특성입니다. 이 유형의 특성 값은 사용자가 입력하거나 클라이언트 측의 인게임 논리에 따라 지정됩니다. 예를 들어 이름 및 캐릭터 능력치, 게임 난이도 등입니다.
  • server - 읽기 전용 특성입니다. 이 유형의 특성 값은 애플리케이션의 서버 측에서 입력하고 편집합니다. 정기적으로 변경하지 않아야 하는 게임 캐릭터 능력치 또는 사용자 매개변수 구성에 사용하는 것이 좋습니다. 예를 들어 보너스를 받을 수 있는 확률, 게임 캐릭터 키 매개변수, 사용자 카테고리 등입니다.
key
string사용자의 특성을 식별하는 데 사용되는 특성의 이름입니다. 각 사용자마다 고유해야 합니다.
최대 길이: 256자. 숫자, 라틴어 문자, 하이픈 및 밑줄을 사용할 수 있습니다.
permission
string or null사용자의 특성에 대한 액세스 유형은 메소드에서 반환한 특성 목록에 영향을 줍니다.
가능한 값: public, private(기본값).
read_only
string속성이 수정으로부터 보호되는지 여부. 기본적으로 false이며 속성값을 변경할 수 있습니다.
value
string사용자의 특성 값입니다.
최대 길이: 256자(기호)

사용자 등록

  1. 클라이언트는 엑솔라 로그인 서버에 Register new user 요청을 전송합니다.
  2. 엑솔라 로그인 서버는 새로운 사용자 URL에 요청을 전송합니다. 응답은 이 통합 흐름에 설명된 형식을 따라야 합니다. 응답에서 사용자 특성 목록 또는 필요한 JSON 개체를 지정할 수 있습니다. 응답에 제공한 JSON 개체는 사용자 JWT의 partner_data 필드에 기록됩니다.

알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
새 사용자 URL 응답 예시:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email":"j.smith@email.com",
  "password":"123456",
  "username":"j.smith@email.com"
}
curl --request POST \
  --url 'https://your.hostname/your_registration_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

사용자 특성이 포함된 응답 예시:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

JSON 개체를 포함한 응답 예시:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}
  1. 사용자 데이터는 엑솔라 데이터베이스에 기록되는 반면에 email은 미확인으로 표시됩니다. 사용자는 계정 확인 이메일을 받게 됩니다.
  2. 로그인 위젯을 통합한 경우, 사용자는 다음 메시지와 함께 해당 페이지로 재지정됩니다: {email}로 송부한 지침에 따라 여러분 계정을 확인해 주세요.
  3. 사용자 등록에 실패한 경우 인증 위젯에 표시되는 오류 메시지를 제공할 수 있습니다. 이렇게 하려면 사용자 생성 요청에 대한 응답에서 다음 세부 정보가 포함된 error개체를 전달합니다.
    • code 매개 변수에서 011-002를 지정합니다.
    • description 매개 변수에서 오류 메시지 텍스트를 제공합니다.
오류 메시지가 포함된 개체의 예시:
Copy
Full screen
Small screen
{
  "error": {
    "code": "011-002",
    "description": "<string>"
  }
}

사용자 이름 및 암호를 통한 인증

  1. 클라이언트는 엑솔라 로그인 서버에 Auth by username and password 요청을 전송합니다.
  2. 엑솔라 로그인 서버는 사용자 검증 URL에 요청을 전송합니다. 응답은 이 통합 흐름에 설명된 형식을 따라야 합니다. 응답에서 사용자 특성 목록 또는 필요한 JSON 개체를 지정할 수 있습니다. 응답에 제공한 JSON 개체는 사용자 JWT의 partner_data 필드에 기록됩니다.

알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
새 사용자 URL 응답 예시:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email":"j.smith@email.com",
  "password":"123456",
  "username":"j.smith@email.com"
}
curl --request POST \
  --url 'https://your.hostname/your_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'

사용자 특성이 포함된 응답 예시:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

JSON 개체를 포함한 응답 예시:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}
  1. 엑솔라 로그인 서버는 사용자 JWT를 생성합니다.
  2. 사용자는 login_urltoken 쿼리 매개변수와 함께 재지정됩니다. 이 token 매개변수는 사용자 JWT를 포함합니다.
알림
엑솔라 데이터베이스에 기록된 사용자 데이터가 없는 경우 새 사용자가 생성됩니다.

전화번호를 통한 암호 없는 인증

  1. 클라이언트는 사용자가 전화번호를 입력할 수 있도록 인증 양식을 엽니다.
  2. 사용자가 전화번호를 입력합니다.
  3. 클라이언트는 엑솔라 로그인 서버로 Start auth by phone number 요청을 전송합니다.
  4. 클라이언트는 사용자가 인증 코드를 입력할 수 있도록 필드를 표시합니다.
  5. 사용자가 수신한 인증 코드를 입력합니다.
  6. 클라이언트가 엑솔라 로그인 서버에 Complete auth by phone number 요청을 전송합니다.
  7. 첫 번째 사용자 인증인 경우, 엑솔라 로그인 서버는 전화 URL을 사용한 비밀번호 없는 로그인에 요청을 전송합니다. 응답은 이 통합 흐름에 설명된 형식을 따라야 합니다. 응답에 사용자 특성 목록이나 필요한 JSON 개체를 지정할 수 있습니다. 응답에 제공한 JSON 개체는 사용자 JWT의 partner_data 필드에 기록됩니다.

알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
새 사용자 URL 응답 예시:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "login": "+12025550140",
  "type": "phone"
}
curl --request POST \
  --url 'https://your.hostname/your_phone_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"login":"+12025550140","type":"phone"}'

사용자 특성이 포함된 응답 예시:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

JSON 개체를 포함한 응답 예시:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

이메일을 통한 비밀번호 없는 인증

  1. 클라이언트는 사용자가 이메일 주소를 입력할 수 있도록 인증 양식을 엽니다.
  2. 사용자가 이메일 주소를 입력합니다.
  3. 클라이언트는 엑솔라 로그인 서버로 Start auth by email 요청을 전송합니다.
  4. 클라이언트는 사용자가 인증 코드를 입력할 수 있도록 필드를 표시합니다.
  5. 사용자가 수신한 인증 코드를 입력합니다.
  6. 클라이언트가 엑솔라 로그인 서버에 Complete auth by email 요청을 전송합니다.
  7. 첫 번째 사용자 인증인 경우, 엑솔라 로그인 서버는 이메일 URL을 사용한 비밀번호 없는 로그인에 요청을 전송합니다. 응답은 이 통합 흐름에 설명된 형식을 따라야 합니다. 응답에 사용자 특성 목록이나 필요한 JSON 개체를 지정할 수 있습니다. 응답에 제공한 JSON 개체는 사용자 JWT의 partner_data 필드에 기록됩니다.

알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
새 사용자 URL 응답 예시:
Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_email_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "email": "user@mail.com",
  "type": "email"
}
curl --request POST \
  --url 'https://your.hostname/your_email_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email": "user@mail.com","type": "email"}'

사용자 특성이 포함된 응답 예시:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

JSON 개체를 포함한 응답 예시:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

소셜 네트워크를 통한 인증

소셜 네트워크를 통해 인증할 때 사용자 데이터를 얻으려면, 관리자 페이지의 로그인 프로젝트에서 소셜 로그인 URL을 지정합니다 (사용자 데이터베이스 > 저장소 > 사용자 지정 저장소 섹션). SNS로부터 받은 데이터를 포함한 요청이 해당 URL로 전송됩니다.

인증 흐름:

  1. 클라이언트는 엑솔라 로그인 서버에 Auth via social network 요청을 전송합니다. 사용자가 소셜 네트워크에 로그인합니다.
  2. 엑솔라 로그인 서버는 소셜 네트워크에서 수신한 사용자 데이터를 처리하고 소셜 로그인 URL에 요청을 전송합니다. 응답은 이 시나리오에 설명된 형식을 따라야 합니다. 응답에서 사용자 특성 목록 또는 필요한 JSON 개체를 지정할 수 있습니다. 응답에 제공한 JSON 개체는 사용자 JWT의 partner_data 필드에 기록됩니다.

알림
요청에 대한 응답으로 JSON 개체를 전송하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
요청은 Authorization: Bearer <JWT> 헤더 내의 임시 토큰에 데이터를 포함합니다. 요청에 전달된 사용자 JWT는 다음 데이터를 포함합니다.
청구유형설명
expUnix TimestampJWT 만료 날짜 및 시간. The JWT 수명은 7분입니다. 필수.
iatUnix Timestamp날짜와 시간 JWT가 발행되었습니다. 필수.
issstringJWT 서명한 서비스 https://login.xsolla.com. 필수.
request_typestring상수: gateway_request. 필수.
xsolla_login_project_idstring (UUID)관리자 페이지의 귀하의 로그인 프로젝트 ID. 필수.
emailstring사용자 이메일 주소.
substring (UUID)엑솔라 로그인 서버에 기록된 사용자 ID. 필수.
usernamestring사용자 이름.
providerstring인증에 사용된 SNS 이름. 필수.
idstringSNS 상의 사용자 ID. 필수.
social_access_tokenstring사용자가 인증된 소셜 네트워크의 액세스 토큰입니다. 이 클레임 전송을 활성화하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
partner_datastring인증 중 서버가 응답 본문에서 반환한 모든 유형의 데이터입니다. 이 클레임 전송을 활성화하려면 고객 성공 관리자에게 문의하거나 csm@xsolla.com으로 이메일을 보내세요.
토큰 페이로드 예제:
Copy
Full screen
Small screen
{
  "exp": 1573635020,
  "iat": 1573634600,
  "iss": "https://login.xsolla.com",
  "request_type": "gateway_request",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
  "sub": "00000000-0000-0000-0000-000000000000",
  "email": "example@test.com",
  "username": "Smith707",
  "provider": "google",
  "id": "123",
}

새 사용자 URL 응답 예시:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_social_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{}
curl --request POST \
  --url 'https://your.hostname/your_social_authentication_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json'

사용자 특성이 포함된 응답 예시:

Copy
Full screen
Small screen
{
    "attributes": [
      {
        "attr_type": "server",
        "key": "company",
        "permission": "private",
        "value": "facebook-promo"
      },
      {
        "attr_type": "server",
        "key": "custom-id",
        "permission": "private",
        "value": 48582
      }
    ]
}

JSON 개체를 포함한 응답 예시:

Copy
Full screen
Small screen
{ "region": "Asia",
  "type": "new"
}

사용자 암호 재설정

  1. 클라이언트는 엑솔라 로그인 서버에 Reset password 요청을 전송합니다.
  2. 엑솔라 로그인 서버는 사용자에게 비밀번호 재설정 확인 이메일을 보냅니다.
  3. 이메일에서 비밀번호 재설정을 확인하면 사용자는 새 비밀번호를 입력할 수 있는 페이지로 리디렉션됩니다.
  4. 사용자가 새 비밀번호를 입력합니다.
  5. 엑솔라 로그인 서버가 비밀번호 재설정 URL로 요청을 전송합니다.

새 사용자 URL 응답 예시:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://your.hostname/your_reset_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json

{
  "username": "john@gmail.com",
  "fields": {
    "password": "NewPa$$word1"
  }
}
curl --request POST \
  --url 'https://your.hostname/your_reset_uri' \
  --header 'authorization: bearer_JWT' \
  --header 'content-type: application/json' \
  --data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
이 기사가 도움이 되었나요?
감사합니다!
개선해야 할 점이 있을까요? 메시지
유감입니다
이 기사가 도움이 안 된 이유를 설명해 주세요. 메시지
의견을 보내 주셔서 감사드립니다!
메시지를 검토한 후 사용자 경험 향상에 사용하겠습니다.

계속 읽기

마지막 업데이트: 2024년 11월 18일

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

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