gpt4 book ai didi

php - Laravel 5 强制 HTTPS 问题,登录路由到 HTTP

转载 作者:行者123 更新时间:2023-12-03 18:31:00 25 4
gpt4 key购买 nike

Laravel 版本:Laravel 5.4.30

我遇到了一个问题,即我的生产代码托管在 AWS Elastic Beanstalk 上,位于通过 HTTPS 提供服务的负载均衡器后面。当使用内置的 auth trait 和 make:auth Controller 来验证用户登录时,在登录表单提交时,用户被重定向到:

http://application-url而不是 https://application-url/dashboard

在 LoginController 中,它应该在登录后路由到/dashboard

 /**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/dashboard';

在登录 Controller 上查看 Blade 登录模板的来源时,我可以看到表单提交到正确的 URL, https://application-url/login .

我正在使用以下内容在 AppServiceProvider.php 文件中强制使用 HTTPS:
    if (!\App::environment('local')) {
\URL::forceScheme('https');
}

一旦用户进行了“身份验证”并且浏览器无法解析 http 版本,单击后退按钮后,它们将被发送到正确的/dashboard 路由。

提交登录表单时是否还有其他位置我遗漏了?

最佳答案

以防万一有人仍然碰到这个,Documentation说:

When running your applications behind a load balancer that terminates TLS / SSL certificates, you may notice your application sometimes does not generate HTTPS links. Typically this is because your application is being forwarded traffic from your load balancer on port 80 and does not know it should generate secure links.



它基本上是由请求以它的方式将未知层传递给您的实例引起的。

AWS 解决方案

修改 信任代理 App\Http\Middleware 中包含的中间件:
// The trusted proxies (array)
protected $proxies = '*';

//The current proxy header mappings (also array)
protected $headers = Request::HEADER_X_FORWARDED_AWS_ELB;

关于php - Laravel 5 强制 HTTPS 问题,登录路由到 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46563398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com