Как записать шаблон md5(пароль_таймштамп)
у меня проблема с шаблоном md5, в документации к API написано что по его нужно указать в параметре авторизационной строки, указывая его я не всё равно не могу авторизоваться. Вот часть документации к API: Аутентификация запросов происходит за счет авторизационной строки, которая передается в параметре заголовка X-Auth. Значение X-Auth формируется по следующему шаблону: md5(пароль_таймштамп) Таймштамп представляет собой текущую дату UTC с точностью до дня в формате год, месяц, день без разделителей. Пароль и таймштамп разделяются символом подчеркивания. Пример: md5("password_20230821") В случае, если авторизационная строка сформирована некорректно, будет возвращен HTTP код 401 Вот мой код:
import $host from './index'
let config = {
headers: {
"X-Auth": md5("Valantis_20240225"),
}
}
export const getStore = async (products) => {
try {
const response = await $host.post(products, config)
return response;
} catch (error) {
// alert(error)
}
}
Может как то по другому нужно записать, не уверен, помогите пожалуйста.
Ожидал получить авторизацию. Я уверен что
let config = {
headers: {
"X-Auth": md5("Valantis_20240225"),
}
}
правильная запись, а вот с самим значением не уверен, писал и без ,md5, и без скобок, и по разному.
Ответы (2 шт):
Да, ты прав, твоя запись правильна, md5 - это шифрование, я уверен что в заголовке "X-Auth": md5("Valantis_20240225") заложен вызов функции кеширования, есть пакет md5, найди и скачай эту библиотеку, также таймштамп советую сделать динамическим!
import $host from './index'
import md5 from "md5";
const stamp = new Date().toISOString().slice(0,10).replace(/-/g,"");
const hash = md5(`${password}_${stamp }`);
let config = {
headers: {
"X-Auth": hash ,
}
}
export const getStore = async (products) => {
try {
const response = await $host.post(products, config)
return response;
} catch (error) {
// alert(error)
}
}
Спасибо всем за помощь, решил проблему тем что просто обратился через обычный fetch а не axios.
import CryptoJS from 'crypto-js';
const password = 'Valantis';
const timestamp = new Date().toISOString().slice(0, 10).split('-').join('');
const data = ${password}_${timestamp};
const authorizationString = CryptoJS.MD5(data).toString();;
export const getStore = async () => { await fetch("http://api.valantis.store:40000/", { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Auth': authorizationString }, body: JSON.stringify( { action: 'get_ids' } ),
}).then( res => {
res.json().then(results =>
{let result = results
if (result !== undefined) {
console.log(result)
return result
}
})
}
);
}