Для чего в fetch options добавляют credentials: true?

Ссылка скопирована
1 ответ

Пытаясь найти ответ, единственное, что нашел это попытка работы с CORS
Но если мы на сервере настроили CORSдля всех или определенные адреса, к чему тут credentials: true?
Ведь мы и так можем добавлять в заголовок Authorization данные для нашего запроса
А http only cookie, которые нам выдал сервер, они сами по себе тоже на сервер будут отправляться

Дополнительно:

Этот параметр не принимает значения true
https://developer.mozilla.org/ru/docs/Web/API/Fetc...

  • > А http only cookie, которые нам выдал сервер, они сами по себе тоже на сервер будут отправляться

    Не будут.

  • Lynn «Кофеман», т.е., если в fetch мы указываем свойство
    credentials: include
    тогда кукисы, которые http only будут отправляться вместе с нашим запросом?
  • credentials нельзя присваивать true (он этого не ожидает).
    https://developer.mozilla.org/en-US/docs/Web/API/F...

    Дайте пример кода, где так делают

    • Вопрос всё же скорее про опцию credentials у fetch.
      https://developer.mozilla.org/en-US/docs/Web/API/F...
    • Lynn «Кофеман», почему-то подумал, что request и вот эти параметры - это одно и то же, спасибо за поправку
    • Возможно я ошибся, но вопрос тот же, для чего нам указывать include?
      Что оно дает нашим fetch запросам и настройкам на сервере?
    • Boris007, эта штука не зависит от cors.
      include - попытаться отправить запрос с кредами, даже если это cross-origin запрос. Кинет ошибку, если это запрещено.

      omit - не отправлять креды вообще

      same-origin - отправить креды, если это same-origin запрос и не отправлять, если это cross-origin

    • Василий Банников, подскажи пожалуйста, что относится к кредам, что без них наш запрос не обработает сервером?
      Просто в первый раз с таким столкнулся, всегда обычный fetch без этого свойства отправлялся
    • Boris007, В доке же написано, что креды - это

      cookies, HTTP authentication entries, and TLS client certificates

      https://developer.mozilla.org/en-US/docs/Web/API/f...

      Также в документации есть вот такое:

      The default is same-origin.

      https://developer.mozilla.org/en-US/docs/Web/API/R...
      Тоесть по-умолчанию креды отправляются если это same-origin запрос.

    • Василий Банников, спасибо, на русском этого куска текста нет )
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Антон С. Ответ

    Когда вы добавляете credentials: true в fetch options, вы указываете браузеру, что запрос может содержать учетные данные, такие как куки, авторизационные заголовки или сертификаты. Это позволяет передавать учетные данные при кросс-доменных запросах, когда веб-страница находится на одном домене, а API на другом.

    Пример использования credentials: true:

    fetch('https://api.example.com/data', {
      method: 'GET',
      credentials: 'include'
    })
      .then(response => {
        if (response.ok) {
          return response.json();
        }
        throw new Error('Network response was not ok.');
      })
      .then(data => console.log(data))
      .catch(error => console.error('There was a problem with your fetch operation:', error));

    fetch('https://api.example.com/data', { method: 'GET', credentials: 'include' }) .then(response => { if (response.ok) { return response.json(); } throw new Error('Network response was not ok.'); }) .then(data => console.log(data)) .catch(error => console.error('There was a problem with your fetch operation:', error));

    В этом примере мы отправляем GET запрос на https://api.example.com/data с использованием credentials: 'include'. Это позволяет браузеру включить учетные данные в запрос и получить доступ к защищенным ресурсам API.

    Важно помнить, что использование credentials: true может быть опасно, если вы не доверяете ресурсу, на который отправляете запрос. Это может привести к утечке учетных данных пользователей. Поэтому всегда убедитесь, что вы доверяете и контролируете целевой ресурс перед использованием этой опции.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно