3

我下载了 ngrok,所以我可以测试我的网站的 http 和 https 请求(如果有人试图进入我的网站特定的 url,这将是一个简单的 http 请求,我会拒绝它),

首先,我的本地主机在 8080 端口工作

我启动 ngrok,它给了我以下信息:

在此处输入图像描述

两者都在同一个端口,我认为这是一个问题,因为如果我在 laravel 中进行如此简单的路由配置:

Route::filter('force.ssl', function()
{
    if( ! Request::secure())
    {
        return 'unsecured';
    }

});

我有这条路线:

Route::get('survey/payment/secured', array('before' => 'force.ssl', function(){
   return 'secured!';
}));

我提出以下要求:

https://75fdaa96.ngrok.com/survey/payment/secured

它认为它不安全并返回“不安全”,我该如何解决这个问题?

4

1 回答 1

2

Request::secure()依靠$_SERVER['HTTPS']. 由于 HTTPS 是由代理提供的,而不是你的网络服务器,Laravel 不知道它是作为 HTTPS 提供的。

ngrok确实传递了X-Forwarded-Proto标头,但 Laravel 默认不信任它。您可以使用受信任的代理中间件来信任它。

于 2017-11-16T21:24:46.200 回答