사용자 정의 스토리지

작동 방식

  1. 애플리케이션(클라이언트)은 엑솔라 로그인 서버에 요청을 전송합니다. 요청 형식은 JWTGeneral 메소드 그룹에 기술되어 있습니다.
  2. 엑솔라 로그인 서버는 요청을 서버로 보냅니다. 지침을 사용하여 요청을 검증합니다.
  3. 엑솔라 로그인 서버는 서버로부터의 응답을 처리하고 클라이언트에게 결과를 반환합니다.
  4. 클라이언트는 이 응답을 처리합니다.

Info: 사용자 정보는 데이터베이스와 엑솔라에 모두 저장됩니다. 암호는 데이터베이스에만 보관됩니다.

등록

  1. 클라이언트는 Register 요청을 엑솔라 로그인 서버에 보냅니다.
  2. 엑솔라 로그인 서버는 요청을 새 사용자 URL로 보냅니다. 응답은 이 지침에 기술된 형식을 따라야 합니다.

요청 예제:

POST https://example.registration.com

Headers:
Content-Type: application/json
Authorization: Bearer {JWT}

Body:
{
  "email": "john@gmail.com",
  "password": "123456"
}

  1. 사용자 정보는 엑솔라 데이터베이스에 기록되며, 반면에:
    • email 매개변수는 미확인으로 표시됩니다. 사용자는 계정 확인 이메일을 받게 됩니다.
    • 비밀번호는 기록되지 않습니다.
  2. 만약 로그인 위젯을 통합한 경우, 사용자는 다음 메시지를 포함하는 페이지로 재지정 됩니다: 다음 {email}로 전송된 지침을 따라 계정을 확인하세요.

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

  1. 귀하의 클라이언트가 Auth by Username and Password을 엑솔라 로그인 서버에 요청하였습니다.
  2. 엑솔라 로그인 서버는 요청을 사용자 검증 URL로 보냅니다. 응답은 반드시 이 지침에 기술된 형식을 따라야 합니다.

요청 예제:

POST https://example.authentication.com

Headers:
Content-Type: application/json
Authorization: Bearer {JWT}

Body:
{
  "email": "john@gmail.com",
  "password": "123456"
}

  1. 엑솔라 로그인 서버는 사용자 JWT를 생성합니다.
  2. 사용자는 login_urltoken 쿼리 매개변수와 함께 재지정됩니다. 이 token 매개변수는 사용자 JWT를 포함합니다.

엑솔라 데이터베이스에 이 사용자에 대한 정보가 없는 경우 새 항목이 생성되지만 암호는 기록되지 않습니다.

암호 초기화

  1. 클라이언트는 Reset Password 요청을 엑솔라 로그인 서버에 전송합니다.
  2. 엑솔라 로그인 서버는 요청을 비밀번호 초기화 URL로 보냅니다. 응답은 이 지침에 기술된 형식을 따라야 합니다. 사용자는 비밀번호 변경 인증 이메일을 받게 됩니다.

요청 예제:

POST https://example.reset.com

Headers:
Content-Type: application/json
Authorization: Bearer {JWT}

Body:
{
  "email": "john@gmail.com"
}

  1. 데이터베이스에 새 비밀번호를 기록하였습니다.

사용자

이미 로그인을 통합하고 JWT 표준-인증을 구현한 파트너.

획득 방법

엑솔라 로그인 서버와 응용 프로그램(클라이언트) 연결을 설정하려면:

  1. 사용자 정의 스토리지를 연결합니다.
  2. 엑솔라 로그인 서버 요청에 대해 유효성 검사를 설정합니다.

사용자 정의 스토리지 연결

  1. 게시자 계정 > 로그인 프로젝트 > 일반 설정으로 이동합니다.
  2. 사용자 데이터 스토리지 블록에서, 저장소 사용자 정의를 선택합니다.
  3. API 요청을 보내기 위한 URL을 입력하세요:
    • 사용자 검증 URL,
    • 새 사용자 URL,
    • 비밀번호 초기화 URL,
    • 이메일 변경 URL.
  4. 다음처럼 응답할 API를 구현합니다:
    • 성공적 요청을 위한 HTTP 200/HTTP 204필요한 경우 추가적인 사용자 데이터를 포함하는 JSON을 응답 본문에 배치할 수 있습니. 전달된 데이터는 JWT > partner_data 매개변수에 기록됩니다.
    • 실패한 요청에 대한 다른 HTTP 상태 코드.

Info: JWT에 데이터베이스의 사용자 ID가 포함되도록 하려면 계정 관리자에게 문의하십시오.

엑솔라 로그인 서버로부터의 검증 요청

엑솔라 로그인 서버 요청은 귀하의 URLAuthorization: Bearer <JWT> 제목과 함께 전달됩니다. JWT는 귀하 프로젝트의 비밀 키와 함께 서명됩니다.

JWT 검증:

  1. 비밀 키 값 복사 (게시자 계정 > 로그인 프로젝트 > 일반 설정 > 비밀 키).
  2. 라이브러리를 선택하고 비밀 키 값을 검증 함수에 전달합니다.
  3. 만약 검증에 성공하면, JWT를 해독하고 다음 테이블의 클레임을 포함함을 확인합니다. 해독을 위한 라이브러리를 찾아 사용합니다.

클레임설명
expJWT 만료 날짜 및 시간은 유닉스 타임 스탬프 형식. JWT 수명은 7분입니다.
iatJWT 날짜 및 시간은 유닉스 타임 스탬프형식으로 표시됩니다.
issJWT 서명한 서비스 https://login.xsolla.com.
request_type상수: gateway_request.
xsolla_login_project_id게시자 계정의 귀하의 로그인 프로젝트 ID.

예제:

{
  "exp": 1573635020,
  "iat": 1573634600,
  "iss": "https://login.xsolla.com",
  "request_type": "gateway_request",
  "xsolla_login_project_id": "00000000-0000-0000-0000-000000000000"
}