#php #symfony #docker #facebook-login #ngrok
#laravel #ngrok
Вопрос:
Я скачал 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
он считает, что он незащищен, и возвращает «незащищенный», как я могу это исправить?
Ответ №1:
Request::secure()
полагается на $_SERVER['HTTPS']
. Поскольку HTTPS предоставляется прокси-сервером, а не вашим веб-сервером, Laravel не знает, что он обслуживается как HTTPS.
ngrok передает X-Forwarded-Proto
заголовок, но Laravel не доверяет ему по умолчанию. Вы можете использовать доверенное промежуточное программное обеспечение прокси, чтобы доверять ему.