Мне нужно сделать POST-запрос с данными на URL , используя TOTP (Time-based One-Time Password). Я все время получаю следующее сообщение с сервера.
============================================== ============
Доступ к XMLHttpRequest по адресу URL из источника 'http://localhost: 3000 ' заблокирован политикой CORS : Ответ на предварительный запрос не проходит проверку контроля доступа: заголовок 'Access-Control-Allow-Origin' имеет значение 'https://topic.name.com', которое не равно указанному источнику.
=============================================== =========
Я использую otplib в качестве библиотеки, чтобы помочь мне сгенерировать TOTP.
- Настройка для TOTP - интервал 30 секунд (по умолчанию)
- T0 - 0 (эпоха)
- Di git - 10
- HMA C -SHA-512 алгоритм
Требования к заголовку (указывается сервером ):
- HTTP Basi c Аутентификация, как указано в главе 2 RFC2617
- Content-Type: 'application / json'
Ниже приведен мой код.
import { totp } from 'otplib'
import base64 from 'base-64'
import axios from 'axios'
const request = () => {
const URL = 'https://api.topic.name.com/topic/003'
const info = {
"github_url": "https://github.com/myname/topic",
"contact_email": "myemail@hotmail.com"
}
const secret = 'nameTopic'
const dataBody = JSON.stringify(info)
const sharedSecret = info.contact_email+secret
totp.options = { digits: 10, algorithm: "sha512", epoch: 0}
const newTOTP = totp.generate(sharedSecret);
const isValid = totp.check(newTOTP, sharedSecret);
console.log(newTOTP, isValid)
const userPass = info.contact_email + ":" + newTOTP;
const credential = base64.encode(userPass);
const config = {
headers: {
'Content-Type': 'application/json',
"Authorization": "Basic " + credential
}
};
axios.post(URL, dataBody, config).then((response) => {
console.log(response)
}, (err) => {
console.log(err)
})
}
export default request
Я действительно не понимаю, почему возникла проблема с CORS, может это быть что мои заголовки неправильные?
Любая помощь приветствуется, спасибо за ваше время.