Проверка электронной почты в Laravel: встроенные и индивидуальные подходы

Чтобы выполнить проверку электронной почты в Laravel, вы можете использовать встроенную функцию проверки электронной почты, предоставляемую Laravel. Вот несколько методов, которые вы можете использовать, а также примеры кода:

  1. Настройка проверки электронной почты по умолчанию:
    Laravel предоставляет встроенную функцию, которая включает в себя маршруты, методы контроллера и представления для проверки электронной почты. Чтобы включить его, выполните следующие действия:

Шаг 1. Включите проверку электронной почты в модели Пользователь:

use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

Шаг 2. Примените промежуточное ПО MustVerifyEmailк нужным маршрутам:

Route::group(['middleware' => 'verified'], function () {
    // Routes that require email verification
});
  1. Пользовательская проверка электронной почты.
    Если вам нужны дополнительные настройки, вы можете реализовать собственную логику проверки электронной почты. Вот пример:

Шаг 1. Создайте миграцию для проверки электронной почты:

php artisan make:migration add_email_verified_at_to_users --table=users

Шаг 2. Измените перенос, добавив столбец email_verified_atв таблицу users:

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->timestamp('email_verified_at')->nullable();
    });
}

Шаг 3. Обновите модель User, чтобы реализовать интерфейс MustVerifyEmail:

use Illuminate\Contracts\Auth\MustVerifyEmail;
class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

Шаг 4. Настройте процесс проверки:

use Illuminate\Auth\Events\Verified;
public function verify(Request $request)
{
    if ($request->user()->hasVerifiedEmail()) {
        return redirect()->intended(config('app.url'));
    }
    if ($request->user()->markEmailAsVerified()) {
        event(new Verified($request->user()));
    }
    return redirect()->route('verification.notice');
}

Это всего лишь несколько подходов к проверке электронной почты в Laravel. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям.