标签: laravel csrf
我的目标是即使在维护模式下,仍然允许管理员登录该网站。 但是,当网站处于维护模式(使用php artisan down)时,Laravel将不会生成任何CSRF令牌。
php artisan down
csrf_token()返回一个空字符串,而csrf_field()返回<input type="hidden" name="_token" value="">
csrf_token()
csrf_field()
<input type="hidden" name="_token" value="">
如果网站未处于维护模式,则不会发生此问题。
是否可以强制生成令牌?
答案 0 :(得分:2)
一种适合您的解决方案是在启用维护模式时为您的管理路由禁用csrf令牌
为此打开
App\Http\Middleware\VerifyCsrfToken
并添加
protected $except = [ '/your/route' ];
答案 1 :(得分:1)
您可能会遇到困难,因为维护模式纯粹是为了阻止所有流量。您将必须创建自己的全局中间件,该中间件将检查是否设置了一个值(可能是env属性)以确定您自己的维护模式是否启用。
您还可以说,如果使用了某个IP,则可以绕过中间件。