Как записать шаблон 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 шт):

Автор решения: Tamper

Да, ты прав, твоя запись правильна, 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)
    }
}
→ Ссылка
Автор решения: Kozyr

Спасибо всем за помощь, решил проблему тем что просто обратился через обычный 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
            }
         })
    }
        
     );

}

→ Ссылка