• 安全认证
    • APP客户端获取Token的逻辑如下:
    • 开发者实现fetchToken访问 AppProxyService
    • AppProxyService需实现以下功能:
    • AppProxyService调用小米TokenService的方式如下:
      • 参数列表
  • 备注:对于以上JSON结果,APP不需要理解其格式,通过MIMCTokenFetcher(安卓)/parseTokenDelegate(iOS)原样返回即可,其他平台类似

    安全认证

    APP客户端获取Token的逻辑如下:

    1. APP(fetchToke开发者实现) <--> AppProxyService(APP开发者实现) <--> 小米TokenService(MIMC)

    开发者实现fetchToken访问 AppProxyService

    1. 访问AppProxyService,从AppProxyService返回结果中获取[小米TokenService下发的原始数据]并返回

    AppProxyService需实现以下功能:

    1. 1. 存储appId/appKey/appSecret(appKey/appSecret不应存储在客户端,防止泄露)
    2. 2. 用户在APP系统内的合法鉴权
    3. 3. 调用小米TokenService服务,并将[小米TokenService下发的原始数据]

    AppProxyService调用小米TokenService的方式如下:

    参数列表
    Variable Meanings
    $appId 小米开放平台申请的AppId
    $appKey 小米开放平台申请的AppKey
    $appSecret 小米开放平台申请的AppSecret
    $appPackage 小米开放平台申请的AppPackage
    $appAccount 用户在APP帐号系统内唯一ID
    $chid MIMC服务的标识,为常量9
    $uuid $appAccount在MIMC内对应userId,开发者可忽略
    $token $appAccount在MIMC系统中的token
    • HTTP 请求

      1. curl "https://mimc.chat.xiaomi.net/api/account/token" -XPOST
      2. -d '{"appId":$appId,"appKey":$appKey,"appSecret":$appSecret,"appAccount":$appAccount}'
      3. -H "Content-Type: application/json"
    • JSON结果

      1. {
      2. "code": 200,
      3. "message": "success",
      4. "data": {
      5. "appId": $appId,
      6. "appPackage": $appPackage,
      7. "appAccount": $appAccount,
      8. "miChid": $chid,
      9. "miUserId": $uuid,
      10. "miUserSecurityKey": $appSecret,
      11. "token": $token
      12. }
      13. }

      备注:对于以上JSON结果,APP不需要理解其格式,通过MIMCTokenFetcher(安卓)/parseTokenDelegate(iOS)原样返回即可,其他平台类似