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

时间:2019-07-13 09:41:40

标签: laravel csrf

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

csrf_token()返回一个空字符串,而csrf_field()返回<input type="hidden" name="_token" value="">

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

是否可以强制生成令牌?

2 个答案:

答案 0 :(得分:2)

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

为此打开

App\Http\Middleware\VerifyCsrfToken

并添加

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

enter image description here

答案 1 :(得分:1)

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

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