# 账户系统

# 一、介绍

该模块为 MOGS-SDK 的子模块,可用于获取账户信息,包括昵称、头像等。

在安装完毕 MOGS-TOOLS 和 MOGS-SDK 之后(安装流程请参照快速开始,用以下方法引入账户系统,就可以使用账户系统的接口。

import { accountSystem } from '@timi/mogs-sdk'
1

# 二、使用

1. 获取用户基本信息

在头部引入账号模块后,异步调用accountSystem.account数据访问接口,返回值格式请查看 Account

// 在头部引入账号系统
import { accountSystem } from "@timi/mogs-sdk";
...
// 使用
const account = await accountSystem.account;
console.log(account.openId, account.token, account.isNewUser);

1
2
3
4
5
6
7

2. 用户基本信息监听

accountSystem同时提供了用户基本信息更新事件监听,accountSystem.onAccountUpdateaccountSystem.offAccountUpdate

以下为监听用户信息更新例子:

// 导入账号系统
import { accountSystem } from "@timi/mogs-sdk";
// ...
// 注册 AccountUpdate 事件处理函数
accountSystem.onAccountUpdate((ev) => {
  console.log('onAccountUpdate:', ev.previousValue, ev.currentValue);
});
1
2
3
4
5
6
7

3. 获取用户签名方法

步骤一: 调用客户端的接口获取 user_sign;

// 导入账号系统
import { accountSystem } from "@timi/mogs-sdk";
// ...
// 获取用户签名
accountSystem.getUserSign({
  fail(err){
    console.error(err);
  },
  success(res){
    console.log('getUserSign',res);
    // 签名解密
  },
  complete(){
    console.log('complete');
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

步骤二: user_sign 按照 _ 拆分成前后两部分,第一部分是秘钥编号,第二部分是实际签名;

步骤三: 将签名做 base64 decode,然后做 RSA 签名验证,和 uid 对比即可;

目前测试环境仅 1 个公钥编号 1,对应的公钥为:

-----BEGIN PUBLIC KEY----- MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOsfAmWD2mm/+FrUbCb0zc3ZA5avpxsF gj3hIFxdfTfMfdaevkSih7P7/Im4Tj3RFPtx2+NAN/3s3E4/lCv80bsCAwEAAQ== -----END PUBLIC KEY-----

游戏服务端用户校验方法请参考游戏服务端用户校验方法 (opens new window)

TIP

更多匹配模块的api请参考账户模块