суббота, 22 июля 2017 г.

LARAVEL. АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ. ЧАСТЬ 1.

https://laravel.com/docs/5.4/authentication

Аутентификация — процесс проверки пользователя, т.е сравнение введенных логина и пароля с данными зарегистрированных пользователей сайта.

Настройки аутентификации располагаются: \config\auth.php
Данные аутентификации можно хранить в сессии или создавать специальную строку tocken, которая передается в каждом запросе. Охранники используются при этом.
Провайдеры определяют, как можно получить данные пользователя из БД или другого места.

<?php

return [

  
    'defaults' => [
        'guard' => 'web', // охранник по умолчанию
        'passwords' => 'users', // логика сброса пароля для пользователя
    ],

    // здесь определены доступные охранники веб-приложения
    // охранник web: информация хранится в сессии
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'token',
            'provider' => 'users',
        ],
    ],

    
    // провайдер - механизм, который позволяет вытащить информацию о пользователе
    'providers' => [
        'users' => [
            'driver' => 'eloquent', // реляционная модель eloquent
            'model' => App\User::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

   
    // здесь настраивается механизм сброса пароля
    'passwords' => [
        'users' => [
            'provider' => 'users',
            'table' => 'password_resets', // название таблицы для сброса пароля
            'expire' => 60,
        ],
    ],

];



Эти таблицы необходимы для работы со сбросом пароля.
\database\migrations
2014_10_12_000000_create_users_table.php
2014_10_12_100000_create_password_resets_table.php

Идем в консоль.
Пишем: php artisan make:auth

Это сформирует виды и вспомогательный контроллер для работы. 

Здесь система аутентификации пользователей: resources\views\auth
login.blade.phpотображает форму для ввода логина.
register.blade.php — регистрация нового пользователя.

В resources\views\auth\passwords
email.blade.php — поля для адреса, куда выслается сообщение с ссылкой о сбросе пароля. Т.е Send Password Reset Link
reset.blade.php — куда ведет данная отправленная ссылка. Для непосредственного сброса пароля пользователя.

\resources\views\home.blade.php — страница администратора.

Рассмотрим контроллер: \app\Http\Controllers\HomeController.php

В маршрутизаторе \routes\web.php уже был сформирован дополнительный маршрут:
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');

Список доступных и зарегистрированных в системе маршрутов мы можем увидеть, если выполним специальную команду в консоли: php artisan route:list


Обратимся к станице http://tlaravel.loc/home
Эта страница закрыта и нас перебросит на страницу​: http://tlaravel.loc/login

Зарегистрируем пользователя: http://tlaravel.loc/register
И потом мы можем залогинится.

Если мы хотим сделать какой-либо закрытый раздел, то можно применить к нему посредник auth.
Сделаем раздел контактов закрытым. Для этого пропишем маршрут: 
Route::group(['middleware' => ['web']], function () {
   Route::get('/contact',['middleware'=>['auth'],'uses'=>'Admin\ContactController@show','as'=>'contact']);
    Route::post('/contact',['uses'=>'Admin\ContactController@store']); 
    
});

Теперь при обращении к странице http://tlaravel.loc/contact нас просят ввести пароль.

1 комментарий:

Materialize-css. Футер

Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html