отправить почтовый запрос в api, используя basi c auth и пароль TOTP - PullRequest
0 голосов
/ 30 мая 2020

Я должен отправить почтовый запрос на myUrl с указанным телом. Api защищен базой c auth, и я должен использовать пароль TOTP, сгенерированный с использованием алгоритма HMA C -SHA-512, T0 = 0, остальные параметры по умолчанию. Общий секрет должен быть таким, как в фрагменте кода ниже. Однако я продолжаю получать 403, недействительный токен, неправильный код. Что я мог упустить?

Пароль сгенерирован и кажется действительным

const fetch = require('node-fetch');
const base64 = require('base-64');
const utf8 = require('utf8');

const { totp } = require('otplib');


const body = 
{
    "github_url": "myGitHubRepo",
    "contact_email": "myEmail"
}
const bodyString = JSON.stringify(body);

const url = "apiUrl";
const sharedSecret = `${body.contact_email}Givenword`;

totp.options = { digits: 10, algorithm: 'sha512', epoch: 0 }

const password = totp.generate(sharedSecret);
const isValid = totp.check(password, sharedSecret);

console.log({password, isValid});

const authStringUTF = `${body.contact_email}:${password}`;
const bytes = utf8.encode(authStringUTF);
const encoded = base64.encode(bytes);

const headers = {
  'Content-Type': 'application/json',
  'Authorization': `Basic ${encoded}`,
  Accept: 'application/json'
}

fetch(url, { method: 'POST', headers, body: bodyString})
  .then((resp) => {
    console.log({headers, url, body});
    return resp.json()
  })
  .then((data) => 
    console.log(data)
  )
...