【发布时间】:2017-09-24 05:14:00
【问题描述】:
TokenMismatchException in VerifyCsrfToken.php line 67:
in VerifyCsrfToken.php line 67
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 726
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 699
at Router->dispatchToRoute(object(Request)) in Router.php line 675
at Router->dispatch(object(Request)) in Kernel.php line 246
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 44
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 132
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 99
at Kernel->handle(object(Request)) in index.php line 54
at require_once('C:\xampp\htdocs\coparmex\public\index.php') in server.php line 21
我已经尝试解决这个问题一周了!我以表格形式发送信息的每 5 次中就有 1 次发生这种情况。这就是我的舒尔。
- 我正在使用
{!! Form:: !!}标签和post或put方法,所以它会自动生成{!! csrf_token() !!},它确实做到了,如果我看到页面的代码我无法检查它 - 我在主布局中有
<meta name="csrf-token" content="{{ csrf_token() }}"/> - meta 中的 token 与 form 中的 token 相同
- 我正在使用文件驱动程序
CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=syncin.env - 我清理了导航曲奇
- 我正在使用带有
Auth::guard($guard)->check()的控制器中间件 - 我使用了这些命令:
php artisan cache:clear, composer dump-autoload, php artisan clear-compiled
这是一个记录表单的例子
{!! Form::open(['route'=>'log.store', 'method'=>'POST']) !!}
{!!Form::text('user',null,array('placeholder' => 'User'))!!}
{!!Form::password('password',array('placeholder' => 'Password'))!!}<br>
{!!Form::select('type', [
'A' => 'A',
'E' => 'E',
])!!}
{!!Form::submit('Login',['class'=>'button'])!!}
{!!Form::close()!!}
我正在使用警卫,如果我与网络警卫开始会话,它工作正常,错误永远不会显示,所以我认为这应该是我的警卫的错误。这些是我的守卫:
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'user2' => [
'driver' => 'session',
'provider' => 'users2',
],
'admin' => [
'driver' => 'session',
'provider' => 'admins',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
],
],
这些是我的供应商
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
'users2' => [
'driver' => 'eloquent',
'model' => App\User2::class,
],
'users' => [
'driver' => 'eloquent',
'model' => BolsaDeTrabajo\User::class,
],
],
这就是我开始会话的方式
if($request['type'] == 'A'){
if (Auth::guard('user2')->attempt([
'user' => $request['user'],
'password' => $request['password']
], true)) {
return Redirect::to('/');
}else{
return Redirect::to('/')->with('message', 'error');
}
}else{
if (Auth::guard('admin')->attempt([
'user' => $request['user'],
'password' => $request['password']
], true)) {
return Redirect::to('/');
}else{
return Redirect::to('/')->with('message', 'error');
}
}
这是我的 auth.php
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => 120,
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'lottery' => [2, 100],
'cookie' => 'laravel_session',
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => false,
'http_only' => true,
];
【问题讨论】:
-
您是否使用了多个系统实例?例如:localhost:80、localhost:81 或在远程主机中,例如:123.123.123.123:80 ?
-
不,我不是,它总是 localhost:8000
-
在
config/session.php中检查会话lifetime,你可能设置的太短了? -
我改成 1440 报错更频繁了:/
标签: php laravel session exception token