跳到主要内容

登录功能

用户登录 minigameApi.login(options)

回调方式:

// 使用回调函数的用户登录
minigameApi.login({
success: function(result) {
console.log('登录成功:', result);
},
fail: function(error) {
console.log('登录失败:', error);
}
});

Promise 方式:

// 使用 Promise 的用户登录
minigameApi.login()
.then(result => {
console.log('登录成功:', result);
})
.catch(error => {
console.log('登录失败:', error);
});

// 或者使用 async/await
async function handleLogin() {
try {
const result = await minigameApi.login();
console.log('登录成功:', result);
} catch (error) {
console.log('登录失败:', error);
}
}

参数说明

参数类型必填说明
successFunction登录成功回调函数
failFunction登录失败回调函数

注意: 使用 Promise 方式时,可以省略 successfail 回调函数,改用 .then().catch() 方法。

成功回调参数:

{
code: 0,
message: 'success',
data: {
jwtToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
expiresIn: 3600,
refreshToken: 'rt_xxxxxxxxxxxxxxxx'
}
}

失败回调参数:

{
code: -1,
message: '错误描述',
error: 'ERROR_CODE'
}

最佳实践:基于 Promise 的登录流程

// 现代化的 async/await 登录流程
class GameManager {
constructor() {
this.minigameApi = midas.minigame(config);
this.setupEventListeners();
}

async initializeGame() {
try {
// 等待 SDK 加载完成
await this.waitForSDKLoad();

// 尝试登录
const loginResult = await this.minigameApi.login();
console.log('用户已登录:', loginResult.data.jwtToken);

// 登录成功后显示游戏菜单
await this.minigameApi.showMenu({ gradually: true });

} catch (error) {
console.error('游戏初始化失败:', error);
this.handleInitError(error);
}
}

waitForSDKLoad() {
return new Promise((resolve) => {
this.minigameApi.on('sdk:loaded', resolve);
});
}

handleInitError(error) {
// 处理初始化错误
if (error.code === 'MODULE_NOT_LOADED') {
console.error('SDK 模块未正确加载');
}
}
}