Основная защита паролем маршрута Laravel без настройки базы данных?

Я ищу мертвое простое решение для защиты паролем (имя пользователя и пароль хранятся в виде пары ключ-значение в массиве) для домена (example.com/demo). Я знаю, что это плохая практика на производстве, но это просто быстрая демонстрация для кого-то. Код, который у меня есть на данный момент, довольно тривиален:

Route::group(['prefix' => 'demo', 'before' => 'auth.basic'], function() {...});

Должен ли я создать свой собственный фильтр? Как бы я установить его так, чтобы фильтр работал только в производстве?

2

Решение

Это так просто, как получается:

Route::filter('auth.verybasic', function()
{
if(Request::getUser() != 'foo' || Request::getPassword() != 'bar'){
$headers = array('WWW-Authenticate' => 'Basic');
return Response::make('Invalid credentials.', 401, $headers);
}
});

Что касается ограничения среды, просто проверьте с App::environment():

Route::filter('auth.verybasic', function()
{
if(App::environment() != 'production') return;
// check login (same as above)
});
10

Другие решения

Других решений пока нет …