Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 当网站处于维护模式时,CSRF令牌为空_Laravel_Csrf - Fatal编程技术网

Laravel 当网站处于维护模式时,CSRF令牌为空

Laravel 当网站处于维护模式时,CSRF令牌为空,laravel,csrf,Laravel,Csrf,我的目标是仍然允许管理员登录到该网站,即使是在维护模式下。 但是,当网站处于维护模式时(使用php artisan down),Laravel不会生成任何CSRF令牌 csrf\u token()正在返回一个空字符串,csrf\u field()正在返回 如果网站未处于维护模式,则不会发生此问题 是否可以强制生成令牌?您可能会遇到困难,因为维护模式纯粹是为了停止所有通信。您必须创建自己的全局中间件,该中间件检查是否设置了值(可能是一个env属性),以确定是否启用了自己的维护模式 您还可以说,如果

我的目标是仍然允许管理员登录到该网站,即使是在维护模式下。 但是,当网站处于维护模式时(使用
php artisan down
),Laravel不会生成任何CSRF令牌

csrf\u token()
正在返回一个空字符串,
csrf\u field()
正在返回

如果网站未处于维护模式,则不会发生此问题


是否可以强制生成令牌?

您可能会遇到困难,因为维护模式纯粹是为了停止所有通信。您必须创建自己的全局中间件,该中间件检查是否设置了值(可能是一个env属性),以确定是否启用了自己的维护模式


您还可以说,如果使用了某个IP,您可以绕过中间件。

一个适合您的解决方案是在启用维护模式时禁用管理路由的csrf令牌

这样做是公开的

App\Http\Middleware\VerifyCsrfToken

protected $except = [
    '/your/route'
];

有趣的解决方案。奇怪的是,没有任何选项支持令牌生成。(在illumb\Session\Store.php中也没有找到任何与维护模式相关的内容!)感谢您提出的这个好主意!我想完全避免禁用CSRF,但我想在登录表单+管理员页面上禁用它不会有什么坏处(因为没有人可以为这些页面编写请求,我错了吗?)。非常感谢。您可能需要做一些研究,以验证禁用CSRFit不会带来任何负面影响。这不是一个好做法,但在这种情况下,它符合要求