Skip to content

사용자

사용자 모듈은 현재 로그인한 플레이어의 정보와 토큰을 가져오는 기능을 제공합니다. 게임이 로그인 없이 모든 기능을 이용할 수 있다면 이 모듈을 사용할 필요가 없으며, 그렇지 않다면 관련 인터페이스를 호출하여 기능을 구현해야 합니다.

JOGOS_SDK 소개 페이지에서 사용 중인 게임 엔진 관련 부분을 읽은 후, 다음과 같이 기능을 사용할 수 있습니다:

javascript
window.JOGOS_SDK.user;

현재 사용자 정보 가져오기

다음 방법으로 현재 플레이어의 정보를 조회할 수 있습니다:

javascript
try {
  const user = await window.JOGOS_SDK.user.getUser();
  console.log('Get user result', user);
} catch (err) {
  // 예외 처리
  console.error(err);
}

현재 플레이어가 등록되지 않았거나 로그인하지 않은 경우, 시스템은 자동으로 로그인/회원가입 창을 열어 플레이어가 등록 또는 로그인 후에만 게임을 계속할 수 있도록 합니다. 그렇지 않으면 401 인증되지 않음, 다시 로그인해주세요 예외가 반환됩니다.

현재 플레이어의 계정이 정지되었거나 삭제된 경우에도 관련 예외 정보가 반환됩니다.

성공적으로 반환되는 플레이어 객체 구조는 다음과 같습니다:

typescript
// 사용자 정보
export interface UserInfo {
  // 사용자 Id
  userId: string;
  // 사용자 이름
  username: string;
  // 프로필 사진 URL
  profilePictureUrl: string;
  // 게임 Id
  gameId: number;
}

JOGOS_SDK의 사용자 이름은 6~20자이며, 문자, 숫자, 점(.) 및 밑줄(_)을 포함할 수 있습니다.

주의: 하나의 계정에 여러 캐릭터가 있는 게임 안내

JOGOS_SDKUserId는 플레이어 계정과 1:1로 대응됩니다. 게임에서 여러 캐릭터 생성이나 서버 전환 기능이 있다면, 서버에서 이를 처리하여 플레이어 캐릭터 손실이나 전환 불가 문제를 방지해야 합니다.

사용자 토큰 가져오기 (게임 서버 연동 필요)

  • 서버가 있는 경우 반드시 연동해야 합니다!
  • 사용자 토큰에는 현재 로그인한 플레이어의 정보가 포함되어 있습니다. 이를 서버로 전송하여 검증/디코딩 후 필요한 정보를 추출하고, 게임 서버의 사용자 시스템과 연동해야 합니다. 데이터 보안에 유의하십시오.

클라이언트에서 사용자 토큰을 가져오는 방법은 다음과 같습니다:

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log('Get token result', token);
} catch (err) {
  // 예외 처리
  console.error(err);
}

토큰 유효기간은 1시간입니다. 토큰을 저장하지 않고 필요할 때마다 호출하는 것이 권장됩니다.

현재 플레이어가 등록되지 않았거나 로그인하지 않은 경우, 시스템은 자동으로 로그인/회원가입 창을 열고, 그렇지 않으면 401 인증되지 않음, 다시 로그인해주세요 예외가 반환됩니다.

계정이 정지되거나 삭제된 경우에도 관련 예외 정보가 반환됩니다.

반환된 토큰은 jwt.io에서 디코딩 및 테스트할 수 있습니다.

성공적으로 반환되는 토큰의 JSON 데이터 예시는 다음과 같습니다:

json
{
  "jti": "1899405772252258304",
  "sub": "{\"profilePictureUrl\":\"a33bf366e34d48e984a094fc923d7b06.png\",\"gameId\":\"1\",\"profileDefaultAvatar\":\"default-avatar.png\",\"userId\":\"88E1B72FED537C6943C85C28F639BE0B\",\"username\":\"55895999999999999999\"}",
  "iss": "com:jogos:sdk",
  "iat": 1741688600,
  "exp": 1745288600
}
클라이언트에서 토큰 디코딩 금지
클라이언트에서 사용자 토큰을 디코딩하지 마십시오. 안전하지 않으며 반드시 서버에서 처리해야 합니다.

서버에서 요청 인증이 필요할 때는 토큰을 서버로 전송하여 디코딩 및 검증해야 합니다. 이 사용자 토큰 공개키 https://www.jogos.com/publicKey.json 를 사용하여 토큰을 검증할 수 있습니다. 공개키는 변경될 수 있으므로 매번 검증 시 가져오는 것이 좋습니다.

다음 단계: 서버 연동 인증

서버 관련 API는 서버 연동 인터페이스 페이지를 참고하세요.

로컬 테스트

로컬 테스트 시, 사용자 모듈 관련 인터페이스는 모의 데이터만 반환합니다.