Skip to content

ผู้ใช้

โมดูลผู้ใช้ให้ฟังก์ชันในการดึงข้อมูล ผู้เล่นที่ล็อกอินแล้ว และ Token ปัจจุบัน หากเกมของคุณไม่ต้องการล็อกอินแต่สามารถเล่นฟังก์ชันทั้งหมดได้ จะไม่จำเป็นต้องใช้โมดูลนี้ แต่หากต้องการ คุณต้องเรียกใช้อินเทอร์เฟซที่เกี่ยวข้องของโมดูลนี้เพื่อให้ฟังก์ชันทำงาน

หลังจากอ่านส่วนที่เกี่ยวข้องกับ engine ของเกมคุณในหน้า 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 Unauthorized, please login again

หากบัญชีผู้เล่นถูกระงับหรือยกเลิก ก็จะส่งข้อผิดพลาดที่เกี่ยวข้องกลับมา

วัตถุผู้เล่นที่ส่งกลับเมื่อสำเร็จมีโครงสร้างดังนี้:

typescript
// ข้อมูลผู้ใช้
export interface UserInfo {
  // Id ผู้ใช้
  userId: string;
  // ชื่อผู้ใช้
  username: string;
  // URL รูปโปรไฟล์
  profilePictureUrl: string;
  // Id เกม
  gameId: number;
}

ชื่อผู้ใช้ของ JOGOS_SDK ต้องมีความยาว 6-20 ตัวอักษร และสามารถประกอบด้วยตัวอักษร ตัวเลข จุด และขีดล่างได้

คำเตือน: เกมหลายตัวละครต่อบัญชีเดียว

JOGOS_SDK UserId จะสอดคล้องกับบัญชีผู้เล่นหนึ่งต่อหนึ่ง หากเกมของคุณสามารถสร้างหลายตัวละครหรือมีหลายเซิร์ฟเวอร์เพื่อสลับตัวละคร คุณต้องจัดการตรรกะนี้ในฝั่งเซิร์ฟเวอร์เพื่อป้องกันการสูญหายของตัวละครหลายตัวหรือไม่สามารถสลับตัวละครได้

ดึง Token ของผู้ใช้ (ต้องมีการเชื่อมต่อกับเซิร์ฟเวอร์เกมของคุณ)

  • หากคุณมีเซิร์ฟเวอร์ ต้องทำการเชื่อมต่อ!
  • Token ของผู้ใช้จะมีข้อมูลเกี่ยวกับผู้เล่นที่ล็อกอินปัจจุบัน คุณต้องส่งไปยังเซิร์ฟเวอร์ของคุณ และตรวจสอบ/ถอดรหัสเพื่อดึงข้อมูลที่เกี่ยวข้อง เชื่อมต่อกับระบบผู้ใช้ในเซิร์ฟเวอร์ของคุณ และต้องมั่นใจว่าข้อมูลผู้ใช้ปลอดภัย

Client ของคุณสามารถใช้วิธีการต่อไปนี้เพื่อดึง Token ของผู้ใช้:

javascript
try {
  const token = await window.JOGOS_SDK.user.getUserToken();
  console.log('Get token result', token);
} catch (err) {
  // จัดการข้อผิดพลาด
  console.error(err);
}

Token มีอายุ 1 ชั่วโมง เราแนะนำให้ไม่เก็บ Token และเรียกใช้วิธีนี้เมื่อจำเป็น

หากผู้เล่นปัจจุบันยังไม่ได้สมัครหรือยังไม่ได้ล็อกอิน ระบบจะเปิดกล่องโต้ตอบล็อกอิน/สมัครโดยอัตโนมัติเพื่อให้ผู้ใช้สมัครหรือเข้าสู่ระบบสำเร็จ จึงสามารถเล่นเกมต่อได้ หากไม่ทำ จะส่งข้อผิดพลาด 401 Unauthorized, please login again

หากบัญชีผู้เล่นถูกระงับหรือยกเลิก ก็จะส่งข้อผิดพลาดที่เกี่ยวข้องกลับมา

Token ที่ส่งกลับสามารถถอดรหัสและทดสอบได้ที่ jwt.io

Token ที่ส่งกลับสำเร็จจะมีข้อมูล 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
}
ห้ามถอดรหัส Token บน Client
กรุณาอย่าถอดรหัส Token ของผู้ใช้บน Client เนื่องจากไม่ปลอดภัย ต้องทำบนเซิร์ฟเวอร์ของคุณเท่านั้น

เมื่อคุณต้องการใช้เซิร์ฟเวอร์ในการตรวจสอบสิทธิ์คำขอ ควรส่ง Token ไปยังเซิร์ฟเวอร์ของคุณ จากนั้นถอดรหัสและตรวจสอบ Token โดยสามารถใช้ Public Key ของ Token ผู้ใช้ https://www.jogos.com/publicKey.json เพื่อยืนยัน Token เราแนะนำให้ดึง Public Key ทุกครั้งที่ตรวจสอบ Token เพราะมันอาจมีการเปลี่ยนแปลง

ขั้นตอนการตรวจสอบถัดไป ผ่านการเชื่อมต่อเซิร์ฟเวอร์

สำหรับ API ที่เกี่ยวข้องกับเซิร์ฟเวอร์ กรุณาเยี่ยมชมหน้า: API เชื่อมต่อเซิร์ฟเวอร์

การทดสอบในเครื่อง (Local)

เมื่อทดสอบในเครื่อง อินเทอร์เฟซของโมดูลผู้ใช้จะส่งคืนเพียงข้อมูลจำลอง