繁体   English   中英

Laravel:仅iOS(iPhone和iPad)上的令牌不匹配异常

[英]Laravel: Token Mismatch Exception only on iOS (iPhone & iPad)

我在移动设备(特别是iOS)上遇到一些问题,当我登录我的应用或在具有令牌的表单上搜索某些内容时,在filters.php第88行上出现了Illuminate \\ Session \\ TokenMismatchException

Route::filter('csrf', function() {
  if(Session::token() !== Input::get('_token')) {
        throw new Illuminate\Session\TokenMismatchException;
  }
});

在控制器上登录的代码:

    $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上完美运行,否则会出现异常。

额外细节:

  • 这发生在两个不同的项目中
  • 我正在使用Laravel 4.2和PHP 5.5.6

提前致谢

这是因为Safari阻止了cookie。 设置它允许cookie,它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM