플레이어와 로그인

재시작해도 유지되는 게스트 계정, 표시 이름, 게스트를 이메일 또는 Google 계정에 연결하는 방법을 설명합니다.

코드 주석과 API 이름은 SDK와 일치하도록 영어로 유지합니다.

이 페이지의 내용

게스트 로그인#

시작할 때 한 번 호출하세요. 저장된 세션을 복원(필요하면 갱신)하거나 새 게스트를 만들어, 같은 플레이어가 진행 상황을 유지하도록 합니다.

C#
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (signIn.Ok)
{
    var player = signIn.Value;
    Debug.Log(player.PlayerId + " " + player.DisplayName + " guest: " + player.IsGuest);
}
새 게스트는 네트워크당 15분마다 30명으로 제한되어, 스크립트를 이용한 계정 생성을 막습니다.

표시 이름#

게스트에게는 Guest 4821 같은 이름이 자동으로 부여됩니다. 플레이어가 직접 이름을 정할 수 있으며, 리더보드에는 이 이름이 표시됩니다.

C#
var renamed = await Majacloud.Auth.SetDisplayNameAsync("Nova");
if (!renamed.Ok) Debug.Log(renamed.Error.Message); // e.g. Validation: too long

계정을 연결하면 MAJACLOUD 서버의 보안 웹 페이지가 열리고, 플레이어는 이메일과 비밀번호 또는 Google로 로그인하거나 가입합니다. 게스트의 진행 상황(점수, 저장 데이터, 지갑)은 해당 계정으로 이전되고, 게임은 새 세션을 받습니다. 어떤 기기에서든 마찬가지입니다.

C#
// Opens the sign-in page, waits for the player, then switches the session
var linked = await Majacloud.Auth.LinkAccountAsync(new MajacloudLinkOptions { ReturnUrl = "mygame://auth" });
if (linked.Ok) Debug.Log("Signed in as " + linked.Value.DisplayName);

// WebGL: browsers only open tabs from a click, so start first and open inside the handler
var flow = await Majacloud.Auth.StartLinkAsync(new MajacloudLinkOptions { OpenBrowser = false });
linkButton.onClick.AddListener(() => flow.Value.OpenInBrowser());
var result = await flow.Value.WaitForCompletionAsync();
  1. SDK가 일회용 시크릿(PKCE)을 만들고 로그인 플로우를 시작합니다.
  2. 플레이어가 웹 페이지에서 절차를 마치는 동안 SDK는 플로우가 완료될 때까지 폴링합니다.
  3. SDK는 시크릿을 사용해 플로우를 세션으로 교환하므로, 링크가 탈취되어도 쓸모가 없습니다.
  4. 플로우는 15분 후 만료됩니다(페이지가 열려 있는 동안에는 연장됩니다).

게임으로 돌아가기#

반환 URL이 없으면 페이지가 플레이어에게 게임으로 돌아가라고 안내합니다. 자동으로 돌려보내려면 API 키 ▸ 플레이어 로그인 반환 URL에 사용자 지정 URL 스킴(예: mygame)을 추가하고 반환 URL로 mygame://auth를 전달하세요.

이벤트#

플레이어가 바뀌거나 로그아웃할 때, 또는 세션을 더 이상 갱신할 수 없을 때 대응합니다:

C#
Majacloud.Auth.PlayerChanged += player => nameLabel.text = player?.DisplayName;
Majacloud.Auth.SignedOut += () => ShowTitleScreen();
Majacloud.Auth.SessionExpired += () => ShowSignIn();

로그아웃#

로그아웃하면 서버에서 세션이 취소되고 기기에서도 삭제됩니다. 다음 로그인 시 새 게스트가 생성됩니다.

C#
await Majacloud.Auth.SignOutAsync();   // revokes the session on the server
Majacloud.Auth.ClearLocalSession();   // or only forget it on this device

서버에서 플레이어 조회#

시크릿 키를 사용하면 서버에서 이메일과 지갑 잔액을 포함한 모든 플레이어 정보를 조회할 수 있습니다:

JavaScript
// Node.js, created with secretKey
const found = await admin.server.getPlayer('player_3f9c…');
if (found.ok) console.log(found.value.player.email, found.value.player.wallets);

대시보드에서#

플레이어 페이지에는 모든 플레이어가 로그인 방식, 점수, 저장 데이터, 지갑과 함께 표시됩니다. 여기서 플레이어의 이름을 바꾸거나 비활성화하고, 모든 기기에서 로그아웃시키고, 비밀번호 재설정 링크를 보내거나 삭제할 수 있습니다.

페이지 제목, 섹션 제목, 본문에서 검색합니다.

↑↓ 이동 ↵ 열기 Esc 닫기