Php 当I';我试图避免会话超时

Php 当I';我试图避免会话超时,php,laravel,session,Php,Laravel,Session,我在互联网上搜索来解决这个问题。我所看到的只是其他类型的错误。 我使用CSRF,我的缓存没有问题,我的文件具有正确的权限 登录页面脱离了“web”中间件,因为我不想受其上会话超时的影响。我不知道怎么做,但如果我让会话结束,我的意思是超时,当我尝试登录我的项目时,我会收到下一条错误消息 由于不活动,该页已过期。请刷新并重试 只是为了澄清,如果我在超时过期之前登录,一切正常 在我的routes/web.php中,我有: Route::get('/', 'LoginController@index')

我在互联网上搜索来解决这个问题。我所看到的只是其他类型的错误。 我使用CSRF,我的缓存没有问题,我的文件具有正确的权限

登录页面脱离了“web”中间件,因为我不想受其上会话超时的影响。我不知道怎么做,但如果我让会话结束,我的意思是超时,当我尝试登录我的项目时,我会收到下一条错误消息

由于不活动,该页已过期。请刷新并重试

只是为了澄清,如果我在超时过期之前登录,一切正常

在我的
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',
    ],
];
应用程序/提供商处的
RouteServiceProvider
似乎正在生成错误。以下功能使所有路由使用web中间件:

protected function mapWebRoutes()
{
    Route::middleware('web')
         ->namespace($this->namespace)
         ->group(base_path('routes/web.php'));
}
我发现有些人在这个文件上为不同的控制器生成不同的函数。我的意思是,可能可以制作一个新的中间件,并将此路由移动到一个新的控制器。
不幸的是,我没有发现如何在不受会话超时影响的情况下创建中间件。

请尝试以下步骤

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
并且在控制器构造函数中尝试刷新会话,因为此csrf_令牌存储在每个用户的会话中

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

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

尝试以下步骤

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan config:cache
并且在控制器构造函数中尝试刷新会话,因为此csrf_令牌存储在每个用户的会话中

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

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

我发现了一个“糟糕的解决方案”,在会话过期后重新加载。这不是我一直在寻找的,有人对此有更好的解决方案吗?您可能没有发布csrf tokenLaravel,默认情况下,在App/Providers上为文件
routes/web.php
上的所有内容设置
web
中间件。您是否在那里做了任何更改以删除中间件设置?如果没有,您必须在提交登录表单时提供
csrf
令牌。@delboy1978uk我在登录上有csrf令牌form@Pusparaj我明白你说的了。看起来它来自这个文件。我发现了一个“错误的解决方案”,在会话过期后重新加载。这不是我一直在寻找的,有人对此有更好的解决方案吗?您可能没有发布csrf tokenLaravel,默认情况下,在App/Providers上为文件
routes/web.php
上的所有内容设置
web
中间件。您是否在那里做了任何更改以删除中间件设置?如果没有,您必须在提交登录表单时提供
csrf
令牌。@delboy1978uk我在登录上有csrf令牌form@Pusparaj我明白你说的了。看起来它来自此文件。我尝试应用此解决方案,但在我的情况下,所有这些都不会起任何作用。您可以尝试增加超时时间,然后在时间过期时我将重新加载页面,谢谢我尝试应用此解决方案,但在我的情况下,所有这些都不起任何作用。您可以尝试增加超时时间,然后我将在超时后重新加载页面,谢谢