Задать вопрос

Как отправить куки?

Есть сайт A на котором работает js отпрвляющий запросы к api сайта B. Сайты на разных доменах.

Api сайта B выдает разные результат в зависимости от того авторизован на нем пользователь или нет.

Однако при отправки запросов со страницы сайта A, пользователь всегда неавторизован на B. Очевидно js не передает куки сайта B выполняя запрос со страницы сайта A.

Есть возможность это обойти? Оба ресурса полностью доступны в части управления и администрирования.

ИИ предлагает добавить Access-Control-Allow-Credentials, но ведь это просто позволит с сайта B устанавливать куки. А мне необходимо чтобы пользователь авторизованный на сайте B, зайдя на A получил данные с B с учетом авторизации.
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Средний 11 комментариев
Пригласить эксперта
Ответы на вопрос 1
@rPman
https://developer.mozilla.org/ru/docs/Web/HTTP/Gui...
document.cookie = "name=value; domain=.example.com; path=/";

будет работать для всех поддоменов example.com

p.s. если без куки, данные добавляли как get параметр запросов (ну а на сервере сохраняй и передавай уже любыми способами), это будет работать на любых доменах в любых ситуациях

upd. для разных доменов можно через iframe
размести на странице домена A iframe на страницу на домене B, на которой скрипт отправит postMessage с нужными данными на страницу A

из iframe на основную страницу:
window.parent.postMessage({данные:xxx,..})
или наоборот:
iframe.contentWindow.postMessage(...)
слушать сообщения:
window.addEventListener('message', function(event) {
  // Проверяем источник сообщения для безопасности
  if (event.origin === 'https://первый-домен.com') {
    // данные в event.data
    ...
  }
}, false);

https://developer.mozilla.org/en-US/docs/Web/API/W...
https://developer.mozilla.org/en-US/docs/Web/API/W...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы