СООБЩЕНИЕ https://cors-anywhere.herokuapp.com/https://embedded-game.myshopify.com/admin/api/2020-10/draft_orders.json 401 (Несанкционированный)

#api #cors #shopify

#API #cors #Shopify

Вопрос:

 const url = 'https://cors-anywhere.herokuapp.com/https://embedded-game.myshopify.com/admin/api/2020-10/draft_orders.json'

  const requestOptions = {
    method: 'POST',
    withCredentials: true,
    headers: {
      'Content-Type': 'application/json',
      'SHOPIFY_API_KEY': '___',
    },
    body: JSON.stringify({
      "draft_order": {
        "line_items": [
          {
            "custom": false,
            "title": "Custom Product",
            "product_id": 4008421883976,
            "price": "1000.00",
            "properties": [
              {
                "name": "custom engraving",
                "value": "Happy Birthday Mom!"
              }
            ],
            "quantity": 5
          }
        ],
        "customer": {
          "id": 1000
        },
        "email": "abhisheksrivastavabbn@gmail.com"
      }
    })
  };

  const createOrder = (e) => {
    e.preventDefault();
    console.log("Order Create Button clicked")
    fetch(url, requestOptions)
      .then(
        console.log("Order Created!!")
      )
      .catch((err) => {
        console.log(err)
      })
  }
 

Я создаю черновик заказа в Shopify, но получаемый ответ 401, то есть не прошедший проверку подлинности.
Хотя я передал ключ API, я не знаю, почему он отображается не прошедшим проверку подлинности.

Первоначально я столкнулся с проблемой CORS, которую я добавил https://cors-anywhere.herokuapp.com перед своим URL. Теперь проблема CORS решена, но как справиться с ошибкой 401.

Заранее спасибо.

Ответ №1:

Ваше имя заголовка неверно. Вместо SHOPIFY_API_KEY этого в документации Shopify указано, что оно должно быть названо X-Shopify-Access-Token .

Кроме того, НИКОГДА не передавайте информацию об аутентификации через ненадежный прокси-сервер, как вы делаете для CORS. Если вам нужно добавить заголовки CORS, настройте свой собственный экземпляр этого (или другого) прокси.

Комментарии:

1. Спасибо, я позабочусь о том, чтобы никогда не передавать аутентификационную информацию через ненадежный прокси. И здесь я использовал X-Shopify-Access-Token вместо SHOPIFY_API_KEY , но все же выдает ошибку 401.