0

我正在尝试生成用于视频聊天应用程序的令牌(具有特定格式的部分随机 base 64 编码字符串)。为此,我在后端使用 Parse Cloud Code。我基本上部署了一个运行我的服务器端脚本的 .js 文件。我现在拥有的代码如下。我一直收到错误代码 141:“未捕获的 ReferenceError:文档未定义”和另一个错误说“$”未定义。我怀疑我正在做一些像错误的 jQuery 之类的事情——可能是非常愚蠢的事情。有任何想法吗?

Parse.Cloud.define("generateToken", function(request, response) {
    var script1 = document.createElement('script');
    script1.src = 'http://code.jquery.com/jquery-1.8.3.min.js';
    script1.type = "text/javascript";
    document.getElementsByTagName('head')[0].appendChild(script1);
    var script2 = document.createElement('script');
    script2.src = 'https://raw.github.com/carlo/jquery-base64/master/   jquery.base64.min.js';
    script2.type = "text/javascript";
    document.getElementsByTagName('head')[0].appendChild(script2);
    var script3 = document.createElement('script');
    script3.src = 'http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js';
    script3.type = "text/javascript";
    document.getElementsByTagName('head')[0].appendChild(script3);
    var secondsInDay = 86400;

    // Credentials - leaving these out for security purposes
    var apiKey = <apiKey>;
    var secret = <secret>;
    var sessionId = request.params.sid;

    // Token Params
    var timeNow = Math.floor(Date.now()/1000);
    var expire = timeNow+secondsInDay;
    var role = "publisher";
    var data = "whatever";

    // Calculation
    data = escape(data);
    var rand = Math.floor(Math.random()*999999);
    var dataString = "session_id="+sessionId+"&create_time="+timeNow+"&expire_time="+expire+"&role="+role+"&connection_data="+data+"&nonce="+rand;

    // Encryption
    var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA1, secret);
    hmac.update( dataString );
    hash = hmac.finalize();

    preCoded = "partner_id="+apiKey+"&sig="+hash+":"+dataString;
    token = "T1=="+$.base64.encode( preCoded );
    // Token Achieved. The End

    response.success(token);
});
4

1 回答 1

0

“文档未定义”通常是运行网络工作者的典型标志。如果您想访问该文档,请不要使用网络工作者。这是因为应该只有一个线程访问文档,以免造成冲突。

于 2013-04-21T06:20:13.383 回答