BAS

⠀⠀⠀⠀⠀⠀TYSHA⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
Команда форума
Модератор
Дней с нами
3.403
Розыгрыши
12
Сообщения
24.472
Репутация
459
Реакции
19.158
Можно как-то реализовать вход на аккаунт стимака с 2fa?
 
ба, думал, что это просто модуль к BASу, а тут такое ...
---------Двойное сообщение соединено: ---------
Модуль есть под nodejs для генерации 2fa
https://github.com/DoctorMcKay/node-steam-totp
Ну и на этом --Ссылка удалена--
---------Двойное сообщение соединено: ---------
¯\_(ツ)_/¯ На гитхабе есть почти всё.
upload_2019-7-12_0-31-44.png

В чем я косячу? :с
 
ба, думал, что это просто модуль к BASу, а тут такое ...
---------Двойное сообщение соединено: ---------

Ну и на этом --Ссылка удалена--
---------Двойное сообщение соединено: ---------

Посмотреть вложение 118763
В чем я косячу? :с
А http сервер для каких целей?
 
можешь по идее просто закинуть нужные функции без этого модуля, если через него не пашет, и вызывать их

Код:
function bufferizeSecret(secret) {
    if (typeof secret === 'string') {
        if (secret.match(/[0-9a-f]{40}/i)) {
            return Buffer.from(secret, 'hex');
        } else if (secret.length === 28) {
            return Buffer.from(secret, 'base64');
        } throw new Error('Wrong Secret Given');
    } throw new Error('Wrong Secret Given');
}

function bufferToOTP(fullcode) {
    const chars = '23456789BCDFGHJKMNPQRTVWXY';
    let otp = '';

    for (let i = 0; i < 5; i++) {
        otp += chars.charAt(fullcode % chars.length);
        fullcode /= chars.length;
    }

    return otp;
}

let getAuthCode = secret => {
    secret = bufferizeSecret(secret);
    const Crypto = require('crypto');
    let time = Math.floor((Date.now() / 1000));
    let buffer = Buffer.allocUnsafe(8);
    let hmac = Crypto.createHmac('sha1', secret);

    buffer.writeUInt32BE(0, 0);
    buffer.writeUInt32BE(Math.floor(time / 30), 4);
    hmac = hmac.update(buffer).digest();

    let start = hmac[19] & 0x0F;
    hmac = hmac.slice(start, start + 4);

    return bufferToOTP(hmac.readUInt32BE(0) & 0x7FFFFFFF);
};

let code = getAuthCode('shared_secret')