我使用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保护。