Я устанавливаю cookie в приложении Drupal, которое размещено в Pantheon (скажем, URL-адрес domain.com/step/1), непосредственно перед перенаправлением на внешний URL-адрес, например так:
$expires = time()+(60*60*24);
setrawcookie('tourPath', '/step/1', $expires, '/');
header('Location: http://www.someexternalurl.com?redirect='.$callback_url);
Внешний URL обрабатывает запрос таким образом, который не имеет отношения к этому вопросу, но затем перенаправляет на $callback_url
, Скажем так domain.com/callback
, Несмотря на это, он находится в том же домене, но это простой PHP-скрипт (не в Drupal).
Проблема, с которой я столкнулся здесь, заключается в том, что когда происходит перенаправление на скрипт обратного вызова, Я вижу в своем браузере, что tourPath
cookie установлен, но его нет в массиве $ _COOKIE.
Я вижу различные файлы cookie Drupal в $ _COOKIE, так что в целом нет проблем с настройкой файлов cookie.
Я пытался с помощью setcookie()
вместо этого, но это не помогло.
При работе с пантеоном и настройке собственных файлов cookie / сессий вам нужно добавить к имени файла cookie «SESS» в соответствии с их документацией:
https://pantheon.io/docs/articles/sites/varnish/caching-advancedtopics/
Так что вместо:
setcookie('hi', 'howareyou?');
Вам нужно будет использовать:
setcookie('SESShi', 'howareyou?');
Других решений пока нет …