はじめに
こんばんは。
今回、laravelのXSRF-TOKENクッキーの名前を変えるために色々調べた備忘録です。
Staging環境, Production環境でTokenの名前がぶつかって token mismatchエラーが出てしまっていました。
この解決策が参考サイトに書かれていました。
参考サイト
本題
<?php declare(strict_types=1); namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; use Symfony\Component\HttpFoundation\Cookie; class VerifyCsrfToken extends Middleware { protected function newCookie($request, $config) { return new Cookie( strtoupper(config('app.env')) . '-XSRF-TOKEN', $request->session()->token(), $this->availableAt(60 * $config['lifetime']), $config['path'], $config['domain'], $config['secure'], false, false, $config['same_site'] ?? null ); } }
参考にさせてもらった記事は Laravel9の話でしたが、Laravel10でも同じでした。
また、 Laravel8だと setCookie()
メソッドが存在しないため同じような対応をするなら別メソッドをオーバライドする必要があります。
終わりに
結構需要あるような案件ですが、Laravel本体でうまく設定できないもんなんですかね??
現場からは以上です。