Javascript 节点需要第三方脚本

Javascript 节点需要第三方脚本,javascript,node.js,Javascript,Node.js,每次收到新密码时,我都需要获得谷歌一次性密码 也请 我想在app.js中使用(在服务器端java脚本文件中)。我一直在想办法,但没能成功 我复制并粘贴到该网站中的所有代码,并在同一目录下创建,需要它 我试过这个: myKey = '**my_key_is_here'; require('./sha.js'); function dec2hex(s) { return (s < 15.5 ? '0' : '') + Math.round(s).toString(16); } functi

每次收到新密码时,我都需要获得谷歌一次性密码

也请

我想在app.js中使用(在服务器端java脚本文件中)。我一直在想办法,但没能成功

我复制并粘贴到该网站中的所有代码,并在同一目录下创建,需要它

我试过这个:

myKey = '**my_key_is_here';
require('./sha.js');


function dec2hex(s) { return (s < 15.5 ? '0' : '') + Math.round(s).toString(16); }
function hex2dec(s) { return parseInt(s, 16); }

function base32tohex(base32) {
    var base32chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
    var bits = "";
    var hex = "";

    for (var i = 0; i < base32.length; i++) {
        var val = base32chars.indexOf(base32.charAt(i).toUpperCase());
        bits += leftpad(val.toString(2), 5, '0');
    }

    for (var i = 0; i + 4 <= bits.length; i += 4) {
        var chunk = bits.substr(i, 4);
        hex = hex + parseInt(chunk, 2).toString(16);
    }
    return hex;

}

function leftpad(str, len, pad) {
    if (len + 1 >= str.length) {
        str = Array(len + 1 - str.length).join(pad) + str;
    }
    return str;
}

function updateOtp() {

    var key = base32tohex(myKey);
    var epoch = Math.round(new Date().getTime() / 1000.0);
    var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0');

    // updated for jsSHA v2.0.0 - http://caligatio.github.io/jsSHA/
    var shaObj = new jsSHA("SHA-1", "HEX");
    shaObj.setHMACKey(key, "HEX");
    shaObj.update(time);
    var hmac = shaObj.getHMAC("HEX");

    if (hmac == 'KEY MUST BE IN BYTE INCREMENTS') {
        console.log('something wrong with HMAC');
    } else {
        var offset = hex2dec(hmac.substring(hmac.length - 1));
        var part1 = hmac.substr(0, offset * 2);
        var part2 = hmac.substr(offset * 2, 8);
        var part3 = hmac.substr(offset * 2 + 8, hmac.length - offset);
    }

    var otp = (hex2dec(hmac.substr(offset * 2, 8)) & hex2dec('7fffffff')) + '';
    otp = (otp).substr(otp.length - 6, 6);


    var test = otp;
    console.log(test);

}

function timer() {
    var epoch = Math.round(new Date().getTime() / 1000.0);
    var countDown = 30 - (epoch % 30);
    if (epoch % 30 == 0) updateOtp();
    // $('#updatingIn').text(countDown);
}

function startFactor() {
    updateOtp();
    setInterval(timer, 1000);
};
startFactor();

基本问题是:如何在我的Nodejs项目中使用它。

从npm repo安装它:

npm install jssha--save
npm install jssha--save dev

然后要求:


jsSHA=require(“jsSHA”)

使用它非常简单! 这就是我需要的

解决了

ReferenceError: jsSHA is not defined