使用者
使用者模組提供取得當前已登入玩家
的資訊與 Token
的功能,若遊戲不需登入即可體驗所有功能,則無須使用此模組;反之,需呼叫此模組的相關介面以實現對應功能。
閱讀 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 未授權,請重新登入
異常。
若當前玩家的帳號已被凍結或註銷,亦將回傳對應的異常資訊。
成功回傳的玩家物件結構如下:
// 使用者資訊
export interface UserInfo {
// 使用者 Id
userId: string;
// 使用者名稱
username: string;
// 頭像 URL
profilePictureUrl: string;
// 遊戲 Id
gameId: number;
}
JOGOS_SDK
的使用者名稱長度為 6–20 個字元,可包含字母、數字、句號及底線。
JOGOS_SDK 的 UserId 與玩家帳號為一一對應;若您的遊戲可建立多個遊戲角色或有多個伺服器切換角色,需由您的伺服器處理該邏輯,以避免玩家多個角色遺失或無法切換。
取得使用者令牌(由您的遊戲服協助接入)
- 若您有伺服器,則需接入!
- 使用者令牌包含當前登入玩家的相關資訊。您需將其傳送至您的伺服器,並於其中驗證/解碼以提取相關資訊,與您遊戲服中的使用者體系進行綁定,請確保此過程的使用者資料安全。
您的客戶端可使用以下方法檢索使用者令牌:
try {
const token = await window.JOGOS_SDK.user.getUserToken();
console.log('Get token result', token);
} catch (err) {
// 處理異常
console.error(err);
}
令牌的有效期為 1 小時。建議您不要儲存 Token,並於每次需要 Token 時呼叫此方法。
若當前玩家尚未註冊或尚未登入,系統將自動開啟登入/註冊對話方塊,要求使用者完成註冊或登入後方可繼續遊戲,否則將回傳 401 未授權,請重新登入
異常。
若當前玩家的帳號已被凍結或註銷,亦將回傳對應的異常資訊。
回傳的令牌可於 jwt.io 進行解碼與測試。
成功回傳的令牌資訊包含以下 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
}
當您需要使用伺服器對請求進行身份驗證時,應將令牌傳送至您的伺服器,然後對令牌進行解碼與驗證,可使用此使用者令牌公鑰 https://www.jogos.com/publicKey.json
驗證令牌。建議您於每次驗證令牌時皆取得金鑰,因其可能變更。
下一步驗證,由伺服器接入
伺服器相關 API,請參閱:伺服端接入介面
頁面。
本地測試
本地測試時,使用者模組的相關介面僅回傳模擬資料。