From 06a23c70af7595db7a9c925f973d18742a114880 Mon Sep 17 00:00:00 2001 From: Kode Date: Sat, 12 Mar 2022 13:09:50 +0000 Subject: [PATCH] Should fix #379 --- app/Http/Middleware/VerifyCsrfToken.php | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/app/Http/Middleware/VerifyCsrfToken.php b/app/Http/Middleware/VerifyCsrfToken.php index ae1893a9..ce71f1ea 100644 --- a/app/Http/Middleware/VerifyCsrfToken.php +++ b/app/Http/Middleware/VerifyCsrfToken.php @@ -3,6 +3,7 @@ namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; +use Symfony\Component\HttpFoundation\Cookie; class VerifyCsrfToken extends Middleware { @@ -18,4 +19,40 @@ class VerifyCsrfToken extends Middleware 'test_config', //'get_stats' ]; + + /** + * Add the CSRF token to the response cookies. + * + * @param \Illuminate\Http\Request $request + * @param \Symfony\Component\HttpFoundation\Response $response + * @return \Symfony\Component\HttpFoundation\Response + */ + protected function addCookieToResponse($request, $response) + { + $config = config('session'); + + if ($response instanceof Responsable) { + $response = $response->toResponse($request); + } + + $response->headers->setCookie( + new Cookie( + 'HEIMDALL-XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']), + $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null + ) + ); + + return $response; + } + + /** + * Determine if the cookie contents should be serialized. + * + * @return bool + */ + public static function serialized() + { + return EncryptCookies::serialized('HEIMDALL-XSRF-TOKEN'); + } + }