我是 Laravel 的新手,并且有一個 Laravel 6 應用程序,其中會話未按預期運行。每當我提交表單時,它都會導致 419 頁過期錯誤。@csrf包含在每個表格中,所以這不是問題。相反,我看到的是瀏覽器中既沒有設置會話 cookie 也沒有設置 XSRF-TOKEN cookie。但是,我確實看到會話為每次頁面加載在數據庫中創建一個新 ID。sessions.php 配置文件是默認配置文件: 'driver' => env('SESSION_DRIVER', 'file'), 'expire_on_close' => false, 'encrypt' => false, 'files' => storage_path('framework/sessions'), 'connection' => env('SESSION_CONNECTION', null), 'table' => 'sessions', 'store' => env('SESSION_STORE', null), 'cookie' => env( 'SESSION_COOKIE', Str::slug(env('APP_NAME', 'laravel'), '_').'_session' ), 'path' => '/', 'domain' => env('SESSION_DOMAIN', null), 'secure' => env('SESSION_SECURE_COOKIE', false), 'http_only' => true, 'same_site' => null,VerifyCsrfToken.php 中間件文件是默認文件:namespace App\Http\Middleware;use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;class VerifyCsrfToken extends Middleware{ /** * Indicates whether the XSRF-TOKEN cookie should be set on the response. * * @var bool */ protected $addHttpCookie = true; /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ // ];}我在 .env 中更改的唯一會話變量是:SESSION_DRIVER=databaseSESSION_COOKIE=lsessionSESSION_LIFETIME=43200除了確認@crsf令牌包含在每種形式之外,我還嘗試過:在多個瀏覽器中測試重新啟動我的機器并重試清除緩存php artisan cache:clear && php artisan config:cache在文件和數據庫會話驅動程序之間來回切換沒有一個有效。還有什么可能導致未設置會話/csrf cookie?非常感謝!
- 2 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消