Laravel Jetstream Fortify 强制使用 SSL 或 HTTPS

问题描述

我开发了一个带有登录部分的网站,使用 Jetstream(使用 Fortify)对用户进行身份验证。在本地环境中,它工作正常。生产环境(通过 AWS 上的 Elastic Beanstalk)无法使用 SSL 证书。

为了让 Laravel 在生产中使用 HTTPS,我在 AppServiceProvider 中添加了以下代码

public function boot()
{
  if (App::environment('production')) {
    URL::forceScheme('https');
  } 
}

现在对于所有路由,它都可以完美运行,除了登录后的重定向。然后使用 HTTP 而不是 HTTPS 重定向路由。出现混合内容错误

我必须添加或更改哪些代码才能使其工作?

要检查所有代码,请随时查看 https://github.com/harmjanbeekhuis/reddingsbrigadededukers。 我很乐意提供解决此问题所需的任何进一步信息。

解决方法

经过更多的研究和大量的反复试验,我发现错误出在 XMLHttpRequest 而不是路由中。将下面的部分添加到 AppServiceProvider 是解决方案。

public function register()
  {
    if (App::environment('production')) {
      $this->app['request']->server->set('HTTPS',true);
    }
  }