Невозможно получить файлы cookie, установленные Laravel - PullRequest
0 голосов
/ 06 января 2020

Согласно официальным документам на куки:

По умолчанию все куки, сгенерированные Laravel, зашифрованы и подписаны так, что они не могут быть изменены или прочитаны клиентом. Если вы хотите отключить шифрование для подмножества файлов cookie, сгенерированных вашим приложением, вы можете использовать свойство $ Кроме промежуточного программного обеспечения App \ Http \ Middleware \ EncryptCookies, которое находится в каталоге app / Http / Middleware

*. 1005 *

В моем контроллере, который отправляет ответ с куки, я установил cook ie с помощью return response("Success", 200)->cookie('api_token', $api_token, 2, '/');, где $api_token - строка, сгенерированная Str::random(80). У меня есть маршрут в web.php, защищенный промежуточным программным обеспечением, который проверяет, действителен ли повар ie. Тем не менее, использование $request->cookie('api_token'); в промежуточном программном обеспечении ничего не возвращает, но я должен сделать исключение в EncryptCookies для api_token, чтобы сделать эту работу.

Я не уверен, почему мой повар ie не шифруется, даже если я использую функцию laravel для ее установки. Я неправильно понимаю, какие куки "генерируются" Laravel?

1 Ответ

0 голосов
/ 06 января 2020

Установить печенье:

public function setCookie(Request $request){
  $minutes = 60;
  $response = new Response('Set Cookie');
  $response->withCookie(cookie('name', 'MyValue', $minutes));
  return $response;
}

Получить печенье:

public function getCookie(Request $request){
  $value = $request->cookie('name');
  echo $value;
}
...