簡體   English   中英

Laravel 5使用登錄路由到HTTP強制HTTPS問題

[英]Laravel 5 force HTTPS issue with login routing to HTTP

Laravel版本:Laravel 5.4.30

我遇到一個問題,我的生產代碼托管在通過HTTPS服務的負載均衡器后面的AWS Elastic Beanstalk上。 使用內置的auth trait和make:auth控制器來驗證用戶登錄時,在提交登錄表單后,會將用戶重定向到:

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

在LoginController中,登錄后應該路由到/ dashboard

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

在登錄控制器上,當我查看刀片服務器登錄模板的源代碼時,我可以看到表單提交到正確的URL https:// application-url / login

我正在使用以下命令在AppServiceProvider.php文件中強制使用HTTPS:

    if (!\App::environment('local')) {
        \URL::forceScheme('https');
    }

一旦用戶獲得“身份驗證”並且瀏覽器無法解析http版本,則單擊后退按鈕后,他們將被發送到正確的/ dashboard路由。

提交登錄表單后,我還有其他位置嗎?

以防萬一有人仍然碰到這個問題, 文檔說:

在終止TLS / SSL證書的負載平衡器后面運行應用程序時,您可能會注意到您的應用程序有時不生成HTTPS鏈接。 通常,這是因為正在從端口80上的負載均衡器轉發應用程序的流量,並且不知道它應該生成安全鏈接。

基本上,這是因為請求以其方式將未知層傳遞到您的實例所引起的。

AWS解決方案

修改App \\ Http \\ Middleware中包含的TrustProxies中間件:

// The trusted proxies (array)
protected $proxies = '*';

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM