我已经安装了 Laravel Nova,执行了迁移并按照文档创建了 Nova 用户 https://nova.laravel.com/docs/3.0/installation.html#installing-nova 。现在我正在尝试登录。
当我发送登录表单时,我会被重定向到后台面板。
当我发送登录表单时,我被重定向到 Chrome 页面“此页面不安全,您确定要发送表单数据吗?” (大约是法语显示错误的英语翻译:D)。
登录表单显示在以下 URL:“https://.../nova/login”。
但是,登录表单包含以下内容
action
:“http://.../nova/login” - 注意:所以它不是 HTTPS,而是 HTTP。
我可以在哪里设置 Laravel 和/或 Nova 配置选项来告诉 Nova 在 Nova 显示的登录表单的
https
中使用 http
而不是 action
?
由于 Nova 似乎没有使用任何环境/配置选项来选择好的 HTTP/HTTPS 协议,所以我直接在
app/Providers/AppServiceProvider
中编写了以下内容(注意:我真的不知道这个解决方案,所以我不建议你这样做,即使在我的情况下它可以很好地修复这个错误):
public function boot()
{
\URL::forceScheme('https');
}
正如 JarsofJam 指出的那样,
\URL::forceScheme('https');
是可以接受的,但请确保对环境使用适当的防护装置。例如:
if (config('app.env') !== 'local') {
\URL::forceScheme('https');
}
这里的主要缺点是 URL 方案最好在生产环境中的代理级别(AWS 上的 ELB 或 Web 服务器)进行集中管理。
如果您特别希望将 Nova 登录操作 URL 转换为 HTTPS 并且不影响其他 URL,您可以覆盖主应用程序视图中的登录表单视图,并调整操作以使用您的
APP_URL
(使用 HTTP 或 HTTPS)配置。例如:
nova/resources/views/auth/login.blade.php
-> resources/views/vendor/nova/auth/login.blade.php
。