もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

LaravelのXSRF-TOKENの名前を変える

はじめに

こんばんは。

今回、laravelのXSRF-TOKENクッキーの名前を変えるために色々調べた備忘録です。

Staging環境, Production環境でTokenの名前がぶつかって token mismatchエラーが出てしまっていました。

この解決策が参考サイトに書かれていました。

参考サイト

techblog.roxx.co.jp

本題

<?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でも同じでした。

github.com

また、 Laravel8だと setCookie() メソッドが存在しないため同じような対応をするなら別メソッドをオーバライドする必要があります。

github.com

終わりに

結構需要あるような案件ですが、Laravel本体でうまく設定できないもんなんですかね??

現場からは以上です。