Php 当I';我试图避免会话超时
我在互联网上搜索来解决这个问题。我所看到的只是其他类型的错误。 我使用CSRF,我的缓存没有问题,我的文件具有正确的权限 登录页面脱离了“web”中间件,因为我不想受其上会话超时的影响。我不知道怎么做,但如果我让会话结束,我的意思是超时,当我尝试登录我的项目时,我会收到下一条错误消息 由于不活动,该页已过期。请刷新并重试 只是为了澄清,如果我在超时过期之前登录,一切正常 在我的Php 当I';我试图避免会话超时,php,laravel,session,Php,Laravel,Session,我在互联网上搜索来解决这个问题。我所看到的只是其他类型的错误。 我使用CSRF,我的缓存没有问题,我的文件具有正确的权限 登录页面脱离了“web”中间件,因为我不想受其上会话超时的影响。我不知道怎么做,但如果我让会话结束,我的意思是超时,当我尝试登录我的项目时,我会收到下一条错误消息 由于不活动,该页已过期。请刷新并重试 只是为了澄清,如果我在超时过期之前登录,一切正常 在我的routes/web.php中,我有: Route::get('/', 'LoginController@index')
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我明白你说的了。看起来它来自此文件。我尝试应用此解决方案,但在我的情况下,所有这些都不会起任何作用。您可以尝试增加超时时间,然后在时间过期时我将重新加载页面,谢谢我尝试应用此解决方案,但在我的情况下,所有这些都不起任何作用。您可以尝试增加超时时间,然后我将在超时后重新加载页面,谢谢