Вступление
Многие веб-приложения требуют, чтобы пользователи проверяли свои адреса электронной почты перед использованием приложения. Вместо того, чтобы заставлять вас повторно внедрять это в каждом приложении, Laravel предоставляет удобные методы для отправки и проверки запросов на подтверждение электронной почты.
Подготовка модели
Для начала убедитесь, что ваша модель реализует контракт:App\User
Illuminate\Contracts\Auth\MustVerifyEmail
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
// ...
}
База данных соображения
Столбец подтверждения по электронной почте
Затем ваша user
таблица должна содержать email_verified_at
столбец для хранения даты и времени проверки адреса электронной почты. По умолчанию users
миграция таблиц, включенная в инфраструктуру Laravel, уже включает этот столбец. Итак, все, что вам нужно сделать, это запустить миграцию базы данных:
php artisan migrate
Маршрутизация
Laravel включает в себя класс, который содержит необходимую логику для отправки проверочных ссылок и проверки электронной почты. Чтобы зарегистрировать необходимые маршруты для этого контроллера, передайте опцию методу:Auth\VerificationController
verify
Auth::routes
Auth::routes(['verify' => true]);
Защита маршрутов
Промежуточное программное обеспечение маршрута может использоваться, чтобы разрешить только проверенным пользователям доступ к данному маршруту. Laravel поставляется с verified
промежуточным программным обеспечением, которое определено в . Поскольку это промежуточное ПО уже зарегистрировано в ядре HTTP вашего приложения, все, что вам нужно сделать, это подключить промежуточное ПО к определению маршрута:Illuminate\Auth\Middleware\EnsureEmailIsVerified
Route::get('profile', function () {
// Only verified users may enter...
})->middleware('verified');
Просмотры
Laravel создаст все необходимые виды проверки электронной почты при выполнении команды. Этот вид помещен в . Вы можете настроить это представление так, как вам нужно.make:auth
resources/views/auth/verify.blade.php
После проверки писем
После проверки адреса электронной почты пользователь будет автоматически перенаправлен на /home
. Вы можете настроить местоположение перенаправления после проверки, определив redirectTo
метод или свойство в VerificationController
:
protected $redirectTo = '/dashboard';
События
Laravel отправляет события в процессе проверки электронной почты. Вы можете прикрепить слушателей к этим событиям в своем EventServiceProvider
:
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'Illuminate\Auth\Events\Verified' => [
'App\Listeners\LogVerifiedUser',
],
];
0 комментариев