Базовая аутентификация 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 запрашивает имя пользователя и пароль и при правильном вводе получаем открытие админки.

→ Ссылка