Skip to content
This repository has been archived by the owner on Jun 12, 2023. It is now read-only.

在TIM 后台验证通过的 userSig ,调用 login 时报错 userSig expired #10

Closed
iyuhang opened this issue Apr 3, 2020 · 4 comments

Comments

@iyuhang
Copy link

iyuhang commented Apr 3, 2020

报错:

[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(6206, Execution Error, userSig expired)

在 TIM 后台验证 userSig 是正确的:

image

class TIM{

  init()async{
    await TencentImPlugin.init(appid: "14003450xx");
  }

  initStorage(String useridIm)async{
    await TencentImPlugin.initStorage(identifier: useridIm);
  }

  getUserSig(String useridIm)async{

    Map data = {
      "id_im": useridIm
    };

    Map res =await Request().post(data, '/account/tls_sig/');
    if(res["statusCode"]==200){
      return res["data"];
    }
  }

  login(String useridIm, String userSig)async{
    TencentImPlugin.login(identifier: useridIm, userSig: userSig);
  }

  logout() {
    TencentImPlugin.logout();
  }
  
}
startTIM()async{
    userAccountModel = Provider.of<UserAccountModel>(context);
    String useridIm =  generateImUserId(userAccountModel.useraccount);

    await TIM().init();
    await TIM().initStorage(useridIm);

    String userSig = await TIM().getUserSig(useridIm);

    log("#### tim user id $useridIm ####");
    log("#### tim user sig is $userSig ####");

    TIM().login(useridIm, userSig);

  }

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel unknown, v1.12.13+hotfix.5, on Mac OS X 10.14.6 18G87, locale en-US)

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.3.1)
[✓] Android Studio (version 3.6)
[✓] VS Code (version 1.43.2)
[✓] Connected device (2 available)

• No issues found!

@JiangJuHong
Copy link
Owner

这个问题在我这没有复现,请确定你的参数正确且顺序也正确

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

和这个有关系吗?

老版本算法
为了简化签名计算难度,方便客户更快速地使用腾讯云服务,即时通信 IM 服务自2019.07.19开始启用新的签名算法,从之前的 ECDSA-SHA256 升级为 HMAC-SHA256。 2019.07.19以后创建的 SDKAppID 均会采用新的 HMAC-SHA256 算法。

如果您的 SDKAppID 是2019.07.19之前创建的,建议升级为 HMAC-SHA256 算法。您也可以继续使用老版本的签名算法,ECDSA-SHA256 算法的源码下载链接如下:

我是用的 python v2 的服务端生成:

此项目为 tls-sig-api-v2 版本的 python 实现。之前非对称的秘钥无法使用此版本的 api,如果有需要请查看这里。

@JiangJuHong
Copy link
Owner

我使用的腾讯云 usig 生成工具进行的测试,你可以进一步的测试,如果真是这个问题,我将对它进行修复

@iyuhang
Copy link
Author

iyuhang commented Apr 3, 2020

现在貌似可以了,不明白什么原因,先关闭了

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants