...
WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Как отправить письмо активации в Laravel после регистрации пользователя

124

Laravel поставляется с потоком аутентификации, когда мы его устанавливаем. Он включает в себя вход в систему, регистрацию, поток забытых паролей в самом ядре Laravel. Используя этот встроенный поток, когда пользователь регистрируется, он получает прямой доступ к системе. Но что, если кто-то хочет отправить проверочный код по электронной почте, прежде чем разрешить пользователю использовать приложение. В этой статье мы изучаем, как отправить письмо активации в Laravel.

Мы собираемся отправить пользователю электронное письмо с подтверждением. Когда пользователь щелкает ссылку для подтверждения, отправленную в электронном письме, только он сможет использовать систему.

Начиная

Для начала мы сначала устанавливаем пакет в наш проект Laravel. Откройте терминал в корневом каталоге вашего проекта и выполните команду:

composer require beyondcode/laravel-confirm-email

Этот пакет, который добавляет подтверждение по электронной почте в ваши проекты Laravel.

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

php artisan vendor:publish --provider=BeyondCodeEmailConfirmationEmailConfirmationServiceProvider

В usersтаблице этого пакета добавляются две колонки confirmed_atи confirmation_code. Давайте запустим команду миграции, чтобы добавить эти столбцы.

php artisan migrate

Конфигурация

Для того, чтобы отправить электронную почту активации нам нужно заменить AuthenticatesUsers, RegistersUsersи SendsPasswordResetEmailsчерт с теми, предоставляемых этим пакетом.

Сначала откройте указанные ниже файлы в своем редакторе, а затем мы заменим черты один за другим.

  • appHttpControllersAuthLoginController.php
  • appHttpControllersAuthRegisterController.php
  • appHttpControllersAuthForgotPasswordController.php

Из приведенных выше файлов замените утверждения

  • use IlluminateFoundationAuthAuthenticatesUsers;
  • use IlluminateFoundationAuthRegistersUsers;
  • use IlluminateFoundationAuthSendsPasswordResetEmails;

С участием

  • use BeyondCodeEmailConfirmationTraitsAuthenticatesUsers;
  • use BeyondCodeEmailConfirmationTraitsRegistersUsers;
  • use BeyondCodeEmailConfirmationTraitsSendsPasswordResetEmails;

Поскольку мы отправляем ссылку для подтверждения в электронном письме с активацией, добавьте в routes/web.phpфайл следующие два маршрута .

Route::name('auth.resend_confirmation')->get('/register/confirm/resend', 'AuthRegisterController@resendConfirmation');
Route::name('auth.confirm')->get('/register/confirm/{confirmation_code}', 'AuthRegisterController@confirm');

Когда пользователь щелкает ссылку подтверждения, этот пакет добавляет флэш-сообщения, содержащие сообщение об ошибке / информационное сообщение для пользователей. Чтобы показать это флэш-сообщение пользователям, добавьте приведенный ниже код в файл resourcesviewsauthlogin.blade.php.

.....
<div class="panel-body">
    @if (session('confirmation'))
        <div class="alert alert-info" role="alert">
            {!! session('confirmation') !!}
        </div>
    @endif
 
    @if ($errors->has('confirmation') > 0)         <div class="alert alert-danger" role="alert">
            {!! $errors->first('confirmation') !!}
        </div>
    @endif
.....

Нам также нужно добавить код ниже в resourcesviewsauthpasswordsemail.blade.php

.....
<div class="panel-body">
    @if ($errors->has('confirmation') > 0)         <div class="alert alert-danger" role="alert">
            {!! $errors->first('confirmation') !!}
        </div>
    @endif
.....

Это оно! Теперь, когда пользователь регистрируется на вашем веб-сайте, он получит письмо с активацией для подтверждения своей учетной записи. Пожалуйста, поделитесь своими мыслями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее