Базовая аутентификация HTTP Laravel 7
Здравствуйте уважаемые Эксперты! Начинаю изучение Laravel 7. Решил делать http basic auth для доступа к странице админки ( /admin). В официальной документации приведен пример роута в файле web.php такого плана:`
Route::get('/admin', ['middleware' => 'auth.basic', function()
{
// Only authenticated users may enter...
}]);
` Прописал я это в роутах, далее при переходе по адресу админки /admin открывается форма ввода логина и пароля.
Вопрос : как реализовать проверку имя пользователя и пароля? где это прописывать все ? В документации еще написано что проверка идет по email вроде как. 1. Как сделать проверку имени пользователя и пароля из БД ( есть таблица Users в ней поля email и password - если в базе такие данные есть то открывается админка если нет то сообщение или редирект например. 2. как реализовать проверку имя пользователя и пароля не из базы данных а прописать их в коде - если данные верны то страница открывается. Пробовал по разному но то при вводе правильных данных белая страница, то что - то еще.
Ответы (1 шт):
Реализовать проверку имя пользователя и пароля не из базы данных а прописать их в коде получилось. Мои действия : 1. Создаю собственный контроллер командой php artisan make:controller AuthController. 2. В контроллере пишу функцию `
function require_auth()
{
$AUTH_USER = 'admin';
$AUTH_PASS = 'admin';
header('Cache-Control: no-cache, must-revalidate, max-age=0');
$has_supplied_credentials = !(empty($_SERVER['PHP_AUTH_USER']) && empty($_SERVER['PHP_AUTH_PW']));
$is_not_authenticated = (
!$has_supplied_credentials ||
$_SERVER['PHP_AUTH_USER'] != $AUTH_USER ||
$_SERVER['PHP_AUTH_PW'] != $AUTH_PASS
);
if ($is_not_authenticated) {
header('HTTP/1.1 401 Authorization Required');
header('WWW-Authenticate: Basic realm="Access denied"');
exit;
}
return view('admin');
}
`. 3. Роут в web.php Route::get('/admin/', 'AuthController@require_auth')->name('admin-home-view');// роут домашней страницы админки. И при переходе /admin запрашивает имя пользователя и пароль и при правильном вводе получаем открытие админки.