Я должен отправить почтовый запрос на 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)
)