我在尝试避免会话超时时,登录页面返回419错误

时间:2019-12-19 15:47:36

标签: php laravel session

我在互联网上搜索了此问题。我看到的只是其他类型的错误。 我使用CSRF ,这不是我的缓存问题,并且我的文件具有正确的权限。

登录页面不在“网络”中间件之内,因为我不希望它的会话超时受到影响。我不知道如何,但是如果我让会话结束,我的意思是超时,当我尝试登录我的项目时会收到​​下一条错误消息

  

该页面因不活动而过期。请刷新,然后重试。

请澄清一下,如果我在超时到期之前登录,一切正常。

在我的routes/web.php中,我有:

Route::get('/', 'LoginController@index')->name('index');
Route::middleware(['web'])->group(function () {
// More routes
}

在我的Kernel.php

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        // \Illuminate\Session\Middleware\AuthenticateSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

我做错了什么?我想念什么吗?

有关我的项目的更多信息:使用cookie的Laravel 5.5。

让我知道是否需要更多信息。

1 个答案:

答案 0 :(得分:0)

尝试以下步骤

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache

然后在控制器构造函数中尝试刷新会话,因为此csrf_token按用户存储在会话中。

public function __construct()
{
    Session::flush();
}

Session::regenerateToken(); // Which generates a new token on request.