Настройка Cookie путем размещения на контроллере RESTful Magento - PullRequest
0 голосов
/ 25 октября 2018

Я создаю приложение, которое в конечном итоге будет находиться в том же домене, где находится другое приложение;оба из которых написаны на 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) возвращает сообщение об ошибке

...