ผู้ใช้
โมดูลผู้ใช้ให้ฟังก์ชันในการดึงข้อมูล ผู้เล่นที่ล็อกอินแล้ว
และ Token
ปัจจุบัน หากเกมของคุณไม่ต้องการล็อกอินแต่สามารถเล่นฟังก์ชันทั้งหมดได้ จะไม่จำเป็นต้องใช้โมดูลนี้ แต่หากต้องการ คุณต้องเรียกใช้อินเทอร์เฟซที่เกี่ยวข้องของโมดูลนี้เพื่อให้ฟังก์ชันทำงาน
หลังจากอ่านส่วนที่เกี่ยวข้องกับ engine ของเกมคุณในหน้า JOGOS_SDK แนะนำ
คุณสามารถใช้งานฟังก์ชันต่างๆ ได้ดังนี้:
window.JOGOS_SDK.user;
ดึงข้อมูลผู้ใช้ปัจจุบัน
คุณสามารถใช้วิธีการต่อไปนี้เพื่อดึงข้อมูลผู้เล่นปัจจุบัน:
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
หากบัญชีผู้เล่นถูกระงับหรือยกเลิก ก็จะส่งข้อผิดพลาดที่เกี่ยวข้องกลับมา
วัตถุผู้เล่นที่ส่งกลับเมื่อสำเร็จมีโครงสร้างดังนี้:
// ข้อมูลผู้ใช้
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 ของผู้ใช้:
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 ดังนี้:
{
"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 ไปยังเซิร์ฟเวอร์ของคุณ จากนั้นถอดรหัสและตรวจสอบ Token โดยสามารถใช้ Public Key ของ Token ผู้ใช้ https://www.jogos.com/publicKey.json
เพื่อยืนยัน Token เราแนะนำให้ดึง Public Key ทุกครั้งที่ตรวจสอบ Token เพราะมันอาจมีการเปลี่ยนแปลง
ขั้นตอนการตรวจสอบถัดไป ผ่านการเชื่อมต่อเซิร์ฟเวอร์
สำหรับ API ที่เกี่ยวข้องกับเซิร์ฟเวอร์ กรุณาเยี่ยมชมหน้า: API เชื่อมต่อเซิร์ฟเวอร์
การทดสอบในเครื่อง (Local)
เมื่อทดสอบในเครื่อง อินเทอร์เฟซของโมดูลผู้ใช้จะส่งคืนเพียงข้อมูลจำลอง