在VerifyCsrfToken.php第46行获取TokenMismatchException:当使用Elfinder



我使用Laravel 5与CKEditor和Elfinder在CMS中创建一个所见即所得的编辑器。我已经启动并运行了文件浏览器,但是我无法上传文件。我有上传选项卡,但是当我单击发送到服务器时,我得到以下内容:

TokenMismatchException in VerifyCsrfToken.php line 46:

知道为什么会这样吗?

我从Kernel.php中删除了verifyCsrf,它专门删除了该错误。它确实抛出了一个新的异常,但我将把它留到以后的问题中。最后,我不想为了图像上传而全面禁用csrf。所以我想我可以排除这些路由:

/app/Http/中间件/VerifyCsrfToken.php:

class VerifyCsrfToken extends BaseVerifier {
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'elfinder/*'
    ];

我假设所有elfinder路由都在elfinder前缀下运行,尽管我没有任何证据支持这一点。文档对上传过程中运行的路由不太清楚。Welp……这也行不通。

接下来的问题是:这是正确的方向吗?有人知道Elfinder上运行的确切路线吗?

更新2

使用本文,我创建了自己的VerifyCsrfTokenCustom类,并且能够仅在Elfinder上禁用CSRF。对于get/post路由似乎有一个路由问题,但我认为这应该是一个新问题。

这是CSRF保护。您可以将令牌传递给Ckeditor,或者在appHttpKernel.php中,您可以在$middleware属性中注释VerifyCsrfToken,这样您将关闭CSRF保护。

最新更新