Я пытаюсь отправить запрос POST, используя NODE
, но выдает ошибку. Здесь я пытаюсь создать TOTP с заголовками и хешированным токеном SHA512 в NODE. В заголовке мы должны передать мой частный GITHUB GIST URL и мой EMAIL_ID , поэтому я не мог поделиться им здесь. Не могли бы вы помочь! Вот код моего узла:
const axios = require('axios');
const base64 = require('base-64');
const utf8 = require('utf8');
const { totp } = require('otplib');
const reqJSON =
{
github_url: GITHUB_URL,
contact_email: MY_EMAIL
}
const stringData = JSON.stringify(reqJSON);
const URL = 'https://api.challenge.hennge.com/challenges/003';
const sharedSecret = reqJSON.contact_email + "HENNGECHALLENGE003";
totp.options = { digits: 10, algorithm: "sha512", epoch: 0 }
const myTotp = totp.generate(sharedSecret);
const isValid = totp.check(myTotp, sharedSecret);
console.log("Token Info:", {myTotp, isValid});
const authStringUTF = reqJSON.contact_email + ":" + myTotp;
const bytes = utf8.encode(authStringUTF);
const encoded = base64.encode(bytes);
const createReq = async () =>
{
try
{
// set the headers
const config = {
headers: {
'Content-Type': 'application/json',
"Authorization": "Basic " + encoded
}
};
console.log("Making req", {URL, reqJSON, config});
const res = await axios.post(URL, stringData, config);
console.log(res.data);
}
catch (err)
{
console.error(err.response.data);
}
};
createReq();
По сути, мне нужно отправить код, который находится в моем личном профиле gist github
. Но когда я запускаю команду node myfile.js
для запуска, я получаю сообщение об ошибке:
Token Info: { myTotp: '1980479983', isValid: true }
Making req {
URL: 'https://api.challenge.hennge.com/challenges/003',
reqJSON: {
github_url: 'https://gist.github.com/sthakur369/233ab97e2d4c4a67630bf6c61f629fe1',
contact_email: 'sthakur369@gmail.com'
},
config: {
headers: {
'Content-Type': 'application/json',
Authorization: 'Basic c3RoYWt1cjM2OUBnbWFpbC5jb206MTk4MDQ3OTk4Mw=='
}
}
}
{ message: 'Access denied: Invalid token, wrong code' }
Заранее спасибо !! Все, что мне нужно сделать, это отправить свой код, в котором я полностью застрял.