tencent cloud

Feedback

Generating UserSig

Last updated: 2022-05-26 10:25:49

    UserSig is a password used to log in to IM. It is the ciphertext obtained after data such as UserID is encrypted. This document describes how to generate a UserSig.

    Obtaining a Key

    1. Log in to the IM console.
      Note:

      If you do not have any app, create an app and then perform step 2.

    2. Click the target app card to go to its basic configuration page.
    3. In the Basic Information section, click Display key to the right of Key.
    4. Click Copy to copy and save the key information.
      Note:

      Store the key information properly to prevent disclosure.

    Calculating UserSig on the Client

    The GenerateTestUserSig open-source module provided in the sample code of the IM SDK can help you quickly generate a UserSig. You only need to configure three member variables, including SDKAPPID (SDKAppID of the app), EXPIRETIME (UserSig expiration time), and SECRETKEY (key information), and then call the genTestUserSig() function to obtain a UserSig.
    To simplify this process, we provide the source code for computing a UserSig for the following languages and platforms. You can directly download and integrate the source code into your client.

    Programing Language Platform GenerateTestUserSig Source Code
    Java Android GenerateTestUserSig.java
    Objective-C iOS GenerateTestUserSig.h
    Objective-C Mac GenerateTestUserSig.h
    C++ Windows GenerateTestUserSig.h
    Javascript Web GenerateTestUserSig.js
    Javascript Mini Program GenerateTestUserSig.js
    Dart Flutter GenerateTestUserSig.dart
    Note:

    In this method, the SECRETKEY is vulnerable to decompilation and reverse engineering. Once your SECRETKEY is disclosed, attackers can steal your Tencent Cloud traffic. Therefore, this method is only suitable for locally running a demo project and debugging.
    The correct way to issue a UserSig is to integrate the UserSig computing code into your server and provide app-oriented APIs. When UserSig is needed, your app will send a request to the business server to obtain a dynamic UserSig. For more information, see Calculating UserSig on the Server.

    Calculating UserSig on the Server

    Calculating a UserSig on the server provides maximum protection against the disclosure of the key used for calculating the UserSig. You only need to deploy the code for calculating the UserSig on your server and provide an app-oriented API. When a UserSig is needed, your app will send a request to the business server to obtain a dynamic UserSig.
    To simplify this process, we provide the source code for calculating a UserSig for the following languages and platforms. You can directly download and integrate the source code into your server.

    Programming Language Key Function Download URL
    Java HMAC-SHA256 genSig
    GO HMAC-SHA256 GenSig
    PHP HMAC-SHA256 genSig
    Nodejs HMAC-SHA256 genSig
    Python HMAC-SHA256 gen_sig
    C# HMAC-SHA256 GenSig
    C++ HMAC-SHA256 gen_sig

    Key fields in a UserSig calculation function include the SDKAppID, UserID, and UserSig validity period, as described in the following table.

    Note:

    The following table uses the field names in the Java source code as an example. The field names might be different in other languages.

    Field Name (Example) Description
    sdkappid SDKAppID of the app. You can obtain the SDKAppID on the app card in the IM console.
    userId User ID (former name: Identifier).
    expire UserSig validity period, in seconds.
    userbuf This field is set to null by default because APIs without UserBuf are used in IM by default.
    APIs with UserBuf may be required in some TRTC use cases, for example, when entering a room. For more information, see Enabling Advanced Permission Control.
    key Key. You can obtain a key on the app details page in the IM console. For more information, see Obtaining a Key.

    Old Version of Algorithm

    To simplify signature computing so that customers can conveniently and quickly use Tencent Cloud services, the signature algorithm of the IM service has been upgraded from ECDSA-SHA256 to HMAC-SHA256 since July 19, 2019. This means that all SDKAppIDs created after July 19, 2019 will use the new HMAC-SHA256 algorithm.

    If your SDKAppID was created before July 19, 2019, we recommend that you upgrade the signature algorithm to HMAC-SHA256. The upgrade will not affect your business. Alternatively, you can still use the signature algorithm of an earlier version. The URLs for downloading the source code for the ECDSA-SHA256 algorithm are as follows:

    Programming Language Signature Algorithm Download Link
    Java ECDSA-SHA256 GitHub
    GO ECDSA-SHA256 GitHub
    PHP ECDSA-SHA256 GitHub
    Nodejs ECDSA-SHA256 GitHub
    Python ECDSA-SHA256 GitHub
    C# ECDSA-SHA256 GitHub
    C++ ECDSA-SHA256 GitHub
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support