我是 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 关注
- 85 浏览
添加回答
举报
0/150
提交
取消