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 は Web サーバーではなくプロキシによって提供されているため、Laravel はそれが HTTPS として提供されていることを知りません。

ngrokヘッダーを渡しますX-Forwarded-Protoが、Laravel はデフォルトでそれを信頼しません。信頼できるプロキシ ミドルウェアを使用して信頼できます。

于 2017-11-16T21:24:46.200 に答える