我在移动设备上遇到了一些问题,特别是iOS,当我登录我的应用程序或在有令牌的表单上搜索某些内容时,我得到 Illuminate \ Session \ TokenMismatchException 在具有
的filters.php第88行Route::filter('csrf', function() {
if(Session::token() !== Input::get('_token')) {
throw new Illuminate\Session\TokenMismatchException;
}
});
在Controller上登录的代码:
$auth = Auth::attempt(array(
'email' => Input::get('username'),
'password' => Input::get('password')
), true);
if($auth){
# Redirect to intended page
return Redirect::intended('/dashboard');
} else {
return Redirect::route('signin')
->with('global-error','Incorrect email or password.');
}
HTML页面上的表单标记代码:
<form method="post" action="{{ URL::route('signin-post') }}">
<!-- Token is echoed like this: -->
{{ Form::token() }}
我能解决这个问题吗?在PC和Android设备上完美运行,如果我删除该过滤器,它适用于iOS,否则我得到例外。
其他详细信息:
提前致谢
答案 0 :(得分:1)
这是因为Safari阻止了cookie。将其设置为允许cookie,它将起作用。