Laravel 5 TokenMismatchException

时间:2015-12-01 22:47:09

标签: php authentication laravel-5 token

我知道这是一个很大程度上讨论的问题,我已经阅读了很多关于此的帖子,但找不到解决方案。

我已在我的电脑上本地开发了一个网站,一切都运行得很漂亮。然后我将网站放在我的个人网站上,看它是如何运作的。一旦这样做,一切似乎都工作,除了我的网站的身份验证部分。当我尝试登录我的应用程序时收到此错误TokenMismatchException in VerifyCsrfToken.php line 46

我没有在本地收到此错误,但是当它在我的主机服务器上时收到它。我错过了什么吗?需要更改配置文件吗?

我已将我的.env,app.php,database.php文件更新为与我的个人网站一起运行。我确保此<input type="hidden" name="_token" value="{{ csrf_token() }}">元素位于我的<form>标记下,正如其他帖子中显示的那样有类似问题。

想法?

HTML:

<form class="form-horizontal" role="form" method="POST" action="">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">

3 个答案:

答案 0 :(得分:1)

尝试执行以下操作:

  1. 清除缓存
  2. 运行 var detectWall = function(dir) { // Detect walls from the array switch(dir) { case 'right': return mapArray[parseInt(player.y/20)][parseInt((player.x+20)/20)] case 'left': return mapArray[parseInt(player.y/20)][parseInt((player.x-20)/20)] case 'up': return mapArray[parseInt((player.y-20)/20)][parseInt(player.x/20)] case 'down': return mapArray[parseInt((player.y+20)/20)][parseInt(player.x/20)] default: return false } }
  3. 确保生成的密钥放在php artisan key:generate文件中。

答案 1 :(得分:0)

如果您使用jquery发布表单,则应包含csrf_token()

$_token = "{{ csrf_token() }}";
$.post( 'myurl', { param1: $param1, param2: $param2, _token: $_token })
.done(function( data )
{
     console.log('Done!');
});

如果您直接发布表单并面临同样的问题,请转到app / Http / Resquests / Kernel.php并对此行进行评论

\App\Http\Middleware\VerifyCsrfToken::class

答案 2 :(得分:0)

请参阅此答案,并避免始终执行上述建议。

jQuery add CSRF token to all $.post() requests' data