Пример учебника по проверке электронной почты Laravel (5.7)
Laravel (5.7) Учебное пособие по проверке электронной почты с примером
Сначала установите Laravel 5.7 с помощью следующей команды.
Установите Laravel 5.7 и настройте базу данных.
composer create-project laravel/laravel emailVerify --prefer-dist
или же
laravel new emailVerify
Зайдите в папку.
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.
Там есть столбец 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.
Вы увидите страницу, как это.
Теперь перейдите по почтовому каналу, и вы увидите, что письмо с подтверждением прибыло.
Также просмотрите базу данных и проанализируйте таблицу пользователя.
Здесь email_verified_at является нулевым. Теперь нажмите на ссылку, которая пришла на ваш адрес электронной почты, и ваш адрес электронной почты будет подтвержден, и вы увидите здесь отметку времени, которая будет зарегистрирована.
Предыдущая: Аутентификация API Laravel (5.7) (Паспорт)
Далее: Laravel (5.7) Сброс пароля
Новый контент: Composer: менеджер зависимостей для PHP , R программирования