Я создаю приложение, которое в конечном итоге будет находиться в том же домене, где находится другое приложение;оба из которых написаны на PHP.Одно из них - приложение Laravel, а другое - хранилище Magento 1.9.
Для аутентификации пользователя приложение Laravel требует, чтобы в ответе хранилища Magento был установлен определенный файл cookie, который впоследствии был получен и проанализирован, все до продолжения аутентификации..
Моя текущая стратегия - это POST для пользовательского контроллера, который доставляет несколько заголовков Set-Cookie из магазина Magento.
Мне нужно что-то вроде: Set-Cookie: auth_token=TheValueWeNeedToContinueAuthenticating; domain='.mydomain'; ...
Сервер, на котором я тестирую, является внутренней промежуточной средой.VHost сервера установлен в общедоступный каталог Laravel, как обычно.
Магазин Magento находится на другом сервере, однако TLD тот же .mydomain
Я проверил ответ в Postman,Я действительно возвращаю cookie с правильным файлом Set-Cookie, но он не виден в моем приложении Laravel, как и другие cookie от Magento.Другие файлы cookie были проверены в ответе, когда я сбросил CookieJar от Guzzle и все еще получил все, кроме файла cookie, который я ищу.
Я использую HTTP-библиотеку PHP Guzzle для публикации сообщений из приложения Laravel 5.6 с использованием PHP 7.1. Magento1Магазин .9, к сожалению, использует PHP / 5.6.35
Когда я отправляю ответ HTTP, я получаю файлы cookie, которые обычно получаются, если бы я действительно посетил любую страницу в магазине.
Что еще моглоЯ проверяю, правильно ли я выбрал этот файл cookie?Https - это протокол передачи, а тип содержимого - x-www-form-urlencoded
, если это поможет каким-либо образом ответить.
Спасибо.
ОБНОВЛЕНИЕ 1.0 - Iудалось получить чистое чтение ошибки из отправляемого запроса.{"status":"error","message":"invalid request"}
Вот мой запрос на пост Guzzle Post
$jar = new \GuzzleHttp\Cookie\CookieJar;
// Logging my error output -- I can share this if I must
$debug_file = fopen('../storage/logs/debug.txt', 'a');
try {
$payload = 'Knock, knock';
$url = '/api/for/post';
$client = new Client([
'base_uri'=> 'https://mySubdomain.myDomain.com',
'debug' => $debug_file,
'cookies' => $jar,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded',
]
]);
$request = new \GuzzleHttp\Psr7\Request('POST', $url, [], $payload);
$rsp = $client->send($request);
dd($rsp->getBody()->read(1024));
$response->getBody()->read(1024)
возвращает сообщение об ошибке