Người chơi và đăng nhập

Tài khoản khách vẫn giữ nguyên sau khi khởi động lại, tên hiển thị, và liên kết tài khoản khách với email hoặc Google.

Chú thích trong mã và tên API được giữ nguyên tiếng Anh để khớp với SDK.

Trên trang này

Đăng nhập khách#

Gọi hàm này một lần khi khởi động. Hàm khôi phục phiên đã lưu (làm mới khi cần) hoặc tạo một tài khoản khách mới, nhờ đó cùng một người chơi vẫn giữ được tiến trình.

C#
var signIn = await Majacloud.Auth.SignInAnonymouslyAsync();
if (signIn.Ok)
{
    var player = signIn.Value;
    Debug.Log(player.PlayerId + " " + player.DisplayName + " guest: " + player.IsGuest);
}
Mỗi mạng chỉ được tạo tối đa 30 tài khoản khách mới trong mỗi 15 phút, giúp ngăn việc tạo tài khoản hàng loạt bằng script.

Tên hiển thị#

Tài khoản khách nhận một tên được tạo tự động, chẳng hạn Guest 4821. Người chơi có thể tự chọn tên; bảng xếp hạng sẽ hiển thị tên này.

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

Liên kết sẽ mở một trang web bảo mật trên máy chủ MAJACLOUD của bạn, nơi người chơi đăng nhập hoặc đăng ký bằng email và mật khẩu hoặc Google. Tiến trình của tài khoản khách (điểm số, bản lưu, ví) được chuyển sang tài khoản đó, và game nhận được phiên mới — trên bất kỳ thiết bị nào.

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 tạo một mã bí mật dùng một lần (PKCE) và bắt đầu luồng đăng nhập.
  2. Người chơi hoàn tất trên trang web; SDK thăm dò (poll) cho đến khi luồng hoàn tất.
  3. SDK dùng mã bí mật đó để đổi luồng lấy một phiên, nên liên kết có bị đánh cắp cũng vô dụng.
  4. Luồng hết hạn sau 15 phút (được gia hạn khi trang còn mở).

Quay lại game#

Nếu không có URL quay lại, trang sẽ nhắc người chơi tự quay lại game. Để đưa họ quay lại tự động, hãy thêm URL scheme tùy chỉnh của bạn (ví dụ mygame) trong Khóa API ▸ URL quay lại sau khi người chơi đăng nhập và truyền mygame://auth làm URL quay lại.

Sự kiện#

Xử lý khi người chơi thay đổi, đăng xuất hoặc khi phiên không thể làm mới được nữa:

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

Đăng xuất#

Đăng xuất sẽ thu hồi phiên trên máy chủ và xóa phiên khỏi thiết bị. Lần đăng nhập tiếp theo sẽ tạo một tài khoản khách mới.

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

Đọc thông tin người chơi từ máy chủ#

Với khóa bí mật, máy chủ của bạn có thể đọc thông tin của bất kỳ người chơi nào, bao gồm email và số dư ví:

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);

Trong bảng điều khiển#

Trang Người chơi liệt kê mọi người chơi cùng phương thức đăng nhập, điểm số, bản lưu và ví. Tại đó bạn có thể đổi tên hoặc vô hiệu hóa người chơi, đăng xuất họ khỏi mọi thiết bị, gửi liên kết đặt lại mật khẩu hoặc xóa họ.

Tìm theo tiêu đề trang, đề mục và nội dung.

↑↓ để di chuyển ↵ để mở Esc để đóng