【问题标题】:TokenMismatchException in VerifyCsrfToken.php line 46VerifyCsrfToken.php 第 46 行中的 TokenMismatchException
【发布时间】:2015-06-22 01:29:03
【问题描述】:

我正在尝试使用 curl post 方法提交表单。我已将 csrf 令牌正确设置为表单。

<form  action="{{URL::route('the-route')}}"   method="post"><input name="_token" type="hidden" value="{{csrf_token()}}">

但它在VerifyCsrfToken.php line 46: 中显示TokenMismatchException。我被困在使用共享主机上,我将我的larvel 5 项目包含在myapp 文件夹和laravel public 文件夹在public_html

作为测试,我也尝试过其他一些帖子建议注释掉 App\Http\Middleware\VerifyCsrfToken,在app/Http/kernal.php 看看会发生什么。每次提交表单后,我都会收到一条消息,指出重定向到:/auth/login/auth/register,具体取决于我来自哪里,但没有成功。

【问题讨论】:

  • 您好,您能否通过使用调试器或使用 dd() 转储变量来验证您的令牌是否与 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken 中的 tokensMatch($request) 匹配?

标签: php laravel laravel-5


【解决方案1】:

我找到了最适合我的解决方案。你需要做的是:

转到 -> 应用程序 -> 异常 -> Handler.php

并将其复制并粘贴到您的渲染方法中:

public function render($request, Exception $e)
{
if ($e instanceof TokenMismatchException) {
    Auth::logout();
    return redirect('login')->withErrors('Sorry, your session has expired.     Please login again.');
  }

return parent::render($request, $e);
}

这将为您处理 TokenMismatchException 并在页面上显示友好消息:)。希望对大家有所帮助!

【讨论】:

    【解决方案2】:
    I just got it working removing the line:
    
    'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken'
    
    from /app/Http/Resquests/Kernel.php
    

    感谢@Mahmoud Nassar

    【讨论】:

    • 这不是好的做法,最好找到问题的根源,然后删除 csrf 保护。
    【解决方案3】:

    我解决了我的问题:

    在我的情况下,我从app/Http/kernal.php 中删除'Illuminate\Foundation\Http\Middleware\VerifyCsrfToken',但这不起作用,但这是TokenMismatchException in VerifyCsrfToken.php line 46 的最佳解决方案

    我在共享主机中托管 laravel 5,作为测试,我也尝试过其他一些帖子建议注释掉更改我的文件夹结构在 public_html 外部创建一个文件夹并在该文件夹中添加文件然后放入 public(laravel) 文件夹在public_html 每次提交表单后,我都会收到一条消息,指出重定向到:/auth/login 或 /auth/register,具体取决于我来自哪里,但没有成功。

    所以我删除了所有文件和文件夹,包括我的应用和 laravel

    最后我在 public_html 中创建 laravel 5 并在 .htaccess 中添加以下代码(如果不存在,则在 laravel 根目录上创建一个 .htaccess)

     RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L]
    

    这个 .htaccess 帮助你从 url

    中删除 public

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 2015-05-21
      • 2015-05-06
      • 2016-04-24
      • 2017-07-20
      • 1970-01-01
      • 2020-03-19
      • 2016-03-20
      • 1970-01-01
      相关资源
      最近更新 更多