У меня проблема с Laravel 5.1. Когда мы добавили Set-Cookie: HttpOnly;Secure в наши заголовки, мы больше не можем перейти к нашему API. Мы не можем использовать API Laravel. Я думаю, что это уже исправлено в новой версии. Но я хочу исправить это в Laravel 5.1. Я не знаю, что сделать, чтобы это заработало.
Сообщения об ошибках не отображаются. Просто мы не можем отправить данные в API. Он будет перенаправлять на свою страницу только после того, как мы отправим форму. Мы не отправляем форму с помощью javascript — мы используем лезвие laravel.
Судя по всему, вам нужно лучше понять структуру и то, как работает код. Когда вы используете перенаправление, он отправляет в браузер http-код 302 вместе с URL-адресом для перенаправления. Затем браузер запросит эту страницу и загрузит ее. Все это происходит за кулисами, поэтому пользователь не замечает, что происходит. Вам нужно зайти в код и использовать точки останова, чтобы увидеть, какие значения находятся в разных точках вашего кода. С той информацией, которую вы предоставили, мы ничем не можем помочь.
Я пытался использовать точки останова в своем контроллере, где моя форма должна быть перенаправлена после отправки, и ничего не происходит. Он просто перезагружает всю страницу. Так что он не проходит через мой контроллер. Я также пытался показать сообщение об ошибке в своем обработчике исключений, если я могу что-то поймать, но тоже ничего не произошло. Я не знаю, как это поймать сейчас, потому что поведение должно быть - из формы, после отправки оно должно перенаправить на путь, который я указал в своей форме, и перейти к контроллеру. Поскольку в моем контроллере не отображается сообщение, оно не идет по пути в нашей форме.
Когда я вижу в своей сети, я увидел, что страница, на которую я должен быть перенаправлен, имеет статус 302 Found.






Я понял теперь, в чем проблема. Мы устанавливаем заголовок «Set-cookie: httponly; secure» на сервере, поэтому xsrf-токен был удален. И я думаю, что именно из-за этого мы не можем продолжить отправку формы. Поэтому я добавляю следующий код в свой VerifyCsrfToken.php
protected function addCookieToResponse($request, $response)
{
$response->headers->setCookie(
new Cookie('XSRF-TOKEN',
$request->session()->token(),
time() + 60 * 120,
'/',
null,
config('session.secure'),
true)
);
return $response;
}
Проблема все еще существует, мы все еще не можем продолжить отправку формы. Я все еще получаю 302 Found, когда мы отправили форму.
Теперь это заголовок 2 Set-Cookie:
Set-Cookie: XSRF-TOKEN=<token>; expires=Thu, 07-Feb-2019 07:38:41 GMT; Max-Age=7200; path=/; secure; HttpOnly
Set-Cookie: laravel_session=<session>; expires=Thu, 07-Feb-2019 07:38:41 GMT; Max-Age=7200; path=/; secure; HttpOnly
Но почему мы все еще не можем отправить форму?
Пожалуйста, опубликуйте сообщение об ошибке или все симптомы, с которыми вы столкнулись. Перед вами очень сложная система, и единственное, что вы сказали, это «она не работает». Если бы вы были врачом, и к вам подошел пациент и сказал: «Доктор, мое тело не работает. Как я могу заставить его работать?», что бы вы сказали?