кодесурса
«Laravel

Пример учебника по проверке электронной почты Laravel (5.7)

script1adsense2code
script1adsense3code

Laravel (5.7) Учебное пособие по проверке электронной почты с примером

Сначала установите Laravel 5.7 с помощью следующей команды.

Установите Laravel 5.7 и настройте базу данных.

composer create-project laravel/laravel emailVerify --prefer-dist

или же

laravel new  emailVerify
«Laravel

Зайдите в папку.

cd emailVerify

Запустите ваш любимый IDE или редактор.

code

Создайте базу данных MySQL и запишите учетные данные в файле .env .

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=emailVerify
DB_USERNAME=root
DB_PASSWORD=root

Хорошо, теперь перенесите таблицы с помощью следующей команды.

php artisan migrate

Теперь просмотрите таблицу пользователей, и вы можете найти еще одно поле с именем email_verified_at.

«Laravel

Там есть столбец email_verified_at, новый в Laravel 5.7. Поэтому, когда пользователь регистрирует и проверяет электронную почту, отметка времени будет записана здесь. Исходя из этого, мы можем различить, подтвердил пользователь электронное письмо или нет. Для такого рода функций мы обычно использовали логический тип данных, но в настоящее время люди используют временную метку для достижения этой цели.

Laravel 5.7 Auth Строительные леса

Хорошо, теперь перейдите к терминалу и введите следующую команду.

php artisan make:auth

Эта команда создала еще одно представление с именем verify.blade.php. Это новое в Laravel 5.7, поскольку в этой версии реализована функция проверки.

@extends('layouts.app')
@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Verify Your Email Address') }}</div>
                <div class="card-body">
                    @if (session('resent'))
                        <div class="alert alert-success" role="alert">
                            {{ __('A fresh verification link has been sent to your email address.') }}
                        </div>
                    @endif
                    {{ __('Before proceeding, please check your email for a verification link.') }}
                    {{ __('If you did not receive the email') }}, <a href="{{ route('verification.resend') }}">{{ __('click here to request another') }}</a>.
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Реализуйте интерфейс mustVerify в модели User.

В модели User.php вы можете увидеть еще один контракт, который называется 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;
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'name', 'email', 'password',
    ];
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

Добавить подтверждение маршрута электронной почты

Перейдите к файлу маршрутов >> web.php и добавьте дополнительный параметр в Auth :: routs ().

Auth::routes(['verify' => true]);

Это позволяет новому контроллеру проверки с действиями маршрута. Вы можете увидеть новый контроллер под названием VerificationController . php файл уже поставляется с Laravel 5.7 .

Кроме того, нам нужно защитить маршрут HomeController , поэтому давайте сделаем это путем добавления промежуточного программного обеспечения.

/** HomeController.php
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware(['auth', 'verified']);
    }

Настройка конфигурации электронной почты

Я использую mailtrap для этого примера. Так что войдите в https://mailtrap.io/signin.

Перейдите в демонстрационный почтовый ящик, скопируйте учетные данные и вставьте в файл .env .

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Проверьте функциональность проверки электронной почты.

Сначала перейдите в браузер и перейдите по адресу http: // localhost: 8000 / register или как я, перейдите по адресу http: //emailverify.test/.register.

Вы увидите страницу, как это.

«Laravel

Теперь перейдите по почтовому каналу, и вы увидите, что письмо с подтверждением прибыло.

«Laravel

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

«Laravel

Здесь email_verified_at является нулевым. Теперь нажмите на ссылку, которая пришла на ваш адрес электронной почты, и ваш адрес электронной почты будет подтвержден, и вы увидите здесь отметку времени, которая будет зарегистрирована.

«Laravel

Предыдущая: Аутентификация API Laravel (5.7) (Паспорт)
Далее: Laravel (5.7) Сброс пароля

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code