Laravel 9. Регистрация с подтверждением
По умолчанию в Laravel процесс регистрации весьма упрощен. Пользователь вводит имя, эл. почту, пароль и попадает в закрытый раздел сайта. Однако, в большинстве случаев, необходимо проверить, что введенный адрес эл. почты указан верно и существует.
Начнем с маршрутов. При генерации аутентификации, в файл маршрутов была автоматически добавлена строка
Auth::routes();
Чтобы включить возможность подтверждения эл. почты по ссылке из сообщения, добавим следующий аргумент:
Auth::routes(['verify' => true]);
Забегая вперед, перечислю все аргументы которые может принимать эта функция:
Auth::routes([
'login' => false, # Отключает маршруты для входа
'register' => false, # Отключает маршруты для регистрации
'verify' => true, # Включает маршруты для подверждения эл. почты
'reset' => false # Отключает маршруты для сброса и восстановления пароля
]);
Далее, в модели User необходимо реализовать контракт (интерфейс) MustVerifyEmail
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
...
}
И последнее - добавить middleware 'verified' к маршрутам закрытого раздела сайта (или в сонструктор контроллера). Ниже представлены варианты:
/**
* Добавление в конструктор контроллера
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(['auth', 'verified']);
}
// Добавление к маршруту в файл routes/web.php
Route::get('/profile', function () {
//
})->middleware(['auth', 'verified']);
// Добавление к группе маршрутов в файл routes/web.php
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/posts', 'PostController@index')->name('posts');
Route::get('/post/{slug}', 'PostController@show')->name('post');
});
Запускаем миграции
php artisan migrate
Регистрируем пользователя и видим такое уведомление
А на почте будет ждать письмо со ссылкой на активацию
|
Чтобы изменить шаблон письма выполните команду
php artisan vendor:publish --tag=laravel-mail
Шаблон будет скопирован в папку resources/views/vendor/mail
, где его можно отредактировать
Важлива інформація
України
втрати противника
орієнтовно склали: