ผู้เล่นและการเข้าสู่ระบบ

บัญชีเกสต์ที่คงอยู่แม้รีสตาร์ตเกม ชื่อที่แสดง และการเชื่อมบัญชีเกสต์กับอีเมลหรือ 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);
}
การสร้างเกสต์ใหม่จำกัดไว้ที่ 30 บัญชีต่อเครือข่ายทุก 15 นาที เพื่อป้องกันการสร้างบัญชีด้วยสคริปต์

ชื่อที่แสดง#

เกสต์จะได้รับชื่อที่สร้างอัตโนมัติ เช่น 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 นาที (ขยายเวลาให้ระหว่างที่หน้าเว็บยังเปิดอยู่)

การกลับเข้าเกม#

หากไม่มี return URL หน้าเว็บจะบอกให้ผู้เล่นกลับไปที่เกมเอง หากต้องการส่งผู้เล่นกลับอัตโนมัติ ให้เพิ่มสคีม URL แบบกำหนดเอง (เช่น mygame) ใน คีย์ API ▸ URL กลับเข้าเกมหลังเข้าสู่ระบบ แล้วส่ง mygame://auth เป็น return URL

อีเวนต์#

ตอบสนองเมื่อผู้เล่นเปลี่ยน ออกจากระบบ หรือเมื่อรีเฟรชเซสชันไม่ได้อีกต่อไป:

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 เพื่อปิด