GoEasyIM - GoEasy-OTP

我想使用GoEasy-OTP来保护我的消息,要如何开始呢?

登录GoEasy,找到“Professional keys”,您会发现3个key:

  1. Client key: 仅用于客户端,必须和OTP一起使用,既可以推送,也可以订阅,服务器端无法使用。
  2. Restful key: 仅用于调用Restful api,无法用于客户端订阅和推送。
  3. Secret key: 用于在生成GoEasy-OTP时,作为加密的秘钥。

在server端生成GoEasyOTP,规则:

  1. 声明一个字符串,内容为"000"+当前系统毫秒数
  2. 将Secret key作为秘钥,用AES(ECB)算法对字符串进行加密
  3. 使用Base64对加密结果进行编码,结果就是GoEasyOTP
  4. 验证自己的OTP算法是否工作

验证OTP生成结果

测试参数:

secret key:86726e4356dce2d3

系统毫秒数:0001490325990593

测试结果:

GoEasy-otp:+rOKqbTZioistsdMrhon0A==

修改Javascript代码,使用Client key作为appkey,同时传入服务器端生成的OTP

        var options = {
            host:"hangzhou.goeasy.io",  //应用所在的区域地址: [hangzhou.goeasy.io, 新加坡暂不支持IM,敬请期待]
            appkey:"您的client key"
        };

         //初始化
        var im  = GoEasyIM.getInstance(options);

        var user = {
            id:"001",
            otp:"您服务器端生成的OTP"
        };   

         //建立连接
        var promise = im.connect(user);

        promise.then(function() {
            console.log("Connection successful.");
        }).catch(function(error) {
            console.log("Failed to connect GoEasy, code:"+error.code+ ",error:"+error.content);
        });

相关链接:

什么是GoEasy-OTP?
如何使用GoEasy-OTP?
验证GoEasy-OTP生成结果
Java生成GoEasy-OTP
PHP生成GoEasy-OTP
Python生成GoEasy-OTP
Ruby生成GoEasy-OTP
C#生成GoEasy-OTP

results matching ""

    No results matching ""