пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Модуль авторизации

  1. Модуль авторизации

Средства Laravel для аутентификации состоят из «защитников» и «провайдеров». Защитники определяют то, как аутентифицируются пользователи для каждого запроса. Например, Laravel поставляется с защитником «session», который поддерживает состояние с помощью хранилища сессий и cookies, и с защитником «token», который аутентифицирует пользователей с помощью «API token», который передаётся с каждым запросом.

Провайдеры определяют то, как пользователи извлекаются из вашего постоянного хранилища. Laravel поставляется с поддержкой извлечения пользователей с помощью Eloquent и конструктора запросов БД. Но при необходимости вы можете определить для своего приложения дополнительные провайдеры.

Не переживайте, если сейчас это звучит запутанно! Для большинства приложений никогда не потребуется изменять стандартные настройки аутентификации.

Laravel поставляется с двумя контроллерами аутентификации, расположенными в пространстве имён App\Http\Controllers\AuthAuthController обрабатывает регистрацию и аутентификацию нового пользователя, а PasswordController содержит логику для помощи существующим пользователям при сбросе забытых паролей. Каждый из этих контроллеров использует типажи для подключения необходимых методов. Для многих приложений вам вообще не придётся изменять эти контроллеры.

Маршрутизация

+ 5.2

 

Laravel обеспечивает быстрый способ создания заготовок всех необходимых для аутентификации маршрутов и представлений с помощью одной команды:

php artisan make:auth

Эту команду надо использовать на свежем приложении, она установит представления для регистрации и входа, а также маршруты для всех конечных точек аутентификации. Также будет сгенерирован HomeController, который обслуживает запросы к панели настроек вашего приложения после входа. Но вы можете изменить или даже удалить это контроллер, если это необходимо для вашего приложения.

+ 5.1 5.0

 

По умолчанию в Laravel нет маршрутов для запросов к контроллерам аутентификации. Вы можете добавить их вручную в файле app/Http/routes.php:

// Маршруты аутентификации...

Route::get('auth/login', 'Auth\AuthController@getLogin');

Route::post('auth/login', 'Auth\AuthController@postLogin');

Route::get('auth/logout', 'Auth\AuthController@getLogout');



// Маршруты регистрации...

Route::get('auth/register', 'Auth\AuthController@getRegister');

Route::post('auth/register', 'Auth\AuthController@postRegister');

Представления

+ 5.2

 

Как было сказано в предыдущем разделе, команда php artisan make:auth создаст все необходимые вам представления для аутентификации и поместит их в папку resources/views/auth` directory.

Также команда make:auth создаст папку resources/views/layouts, содержащую основной макет для вашего приложения. Все эти представления используют CSS-фреймворк Bootstrap, но вы можете изменять их как угодно.

+ 5.1 5.0

 

Не смотря на то, что контроллеры аутентификации включены в фреймворк, вам необходимо предоставить представления, которые эти контроллеры смогут отрисовать. Представления необходимо расположить в каталоге resources/views/auth. Вы вольны настроить эти представления так, как сами желаете. Представление для входа в систему должно быть в resources/views/auth/login.blade.php, а представление для регистрации — в resources/views/auth/register.blade.php.

Пример формы аутентификации

<!-- resources/views/auth/login.blade.php -->



<form method="POST" action="/auth/login">

  {!! csrf_field() !!}



  <div>

    Email

    <input type="email" name="email" value="{{ old('email') }}">

  </div>



  <div>

    Password

    <input type="password" name="password" id="password">

  </div>



  <div>

    <input type="checkbox" name="remember"> Remember Me

  </div>



  <div>

    <button type="submit">Login</button>

  </div>

</form>

Пример формы регистрации

<!-- resources/views/auth/register.blade.php -->



<form method="POST" action="/auth/register">

  {!! csrf_field() !!}



  <div>

    Name

    <input type="text" name="name" value="{{ old('name') }}">

  </div>



  <div>

    Email

    <input type="email" name="email" value="{{ old('email') }}">

  </div>



  <div>

    Password

        <input type="password" name="password">

  </div>



  <div>

    Confirm Password

    <input type="password" name="password_confirmation">

  </div>



  <div>

    <button type="submit">Register</button>

  </div>

</form>

Аутентификация

Теперь, когда у вас есть маршруты и представления для имеющихся контроллеров аутентификации, вы готовы регистрировать и аутентифицировать новых пользователей своего приложения. Вы можете просто перейти по этим маршрутам в браузере. Контроллеры аутентификации уже содержат логику (благодаря их типажам) для аутентификации существующих пользователей и сохранения новых пользователей в базе данных.

+ 5.2

 

Изменение пути

Когда пользователь успешно аутентифицируется, он будет перенаправлен на URI /. Вы можете изменить место для перенаправления после входа, задав свойство redirectTo контроллера AuthController:

protected $redirectTo = '/home';

Когда аутентификация пользователя не успешна, он автоматически будет перенаправлен обратно на форму входа.

Чтобы изменить место для перенаправления после выхода из приложения, вы можете задать свойство redirectAfterLogoutконтроллера AuthController:

protected $redirectAfterLogout = '/login';

Если это свойство не задано, пользователь будет перенаправлен на URI /.

Изменение защитника

Вы также можете изменить «защитника», используемого для аутентификации пользователей. Для начала задайте свойство guardконтроллера AuthController. Значение этого свойства должно соответствовать одному из защитников, настроенных в вашем файле настроек auth.php:

protected $guard = 'admin';

 

 


22.06.2017; 21:21
хиты: 144
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь