تایید ایمیل
معرفی
بسیاری از برنامه های کاربردی وب از کاربران می خواهند که آدرس ایمیل خود را قبل از استفاده از برنامه تأیید کنند. لاراول به جای اینکه شما را مجبور به اجرای مجدد آن در هر برنامه کند، روش های مناسبی برای ارسال و تأیید درخواست های تأیید ایمیل ارائه می دهد.
آماده سازی مدل
برای شروع، بررسی کنید که
App\User
مدل شما
Illuminate\Contracts\Auth\MustVerifyEmail
قرارداد را اجرا می کند:
<?php namespace App; use Illuminate\Contracts\Auth\MustVerifyEmail;use Illuminate\Foundation\Auth\User as Authenticatable;use Illuminate\Notifications\Notifiable; class User extends Authenticatable implements MustVerifyEmail{ use Notifiable; // ...}
هنگامی که این رابط به مدل شما اضافه شد، کاربرانی که به تازگی ثبت نام کرده
اند به طور خودکار ایمیلی حاوی پیوند تأیید ایمیل برای شما ارسال می شود.
همانطور که با بررسی خود مشاهده می کنید
EventServiceProvider
، لاراول از قبل حاوی
SendEmailVerificationNotification
شنونده ای است که به
Illuminate\Auth\Events\Registered
رویداد متصل شده است.
ملاحظات پایگاه داده
ستون تأیید ایمیل
در مرحله بعد،
user
جدول شما باید دارای
email_verified_at
ستونی برای ذخیره تاریخ و زمانی باشد که آدرس ایمیل تأیید شده است.
بهطور پیشفرض،
users
انتقال جدول همراه با فریمورک لاراول از قبل شامل این ستون میشود.
بنابراین، تنها کاری که باید انجام دهید این است که مهاجرت های پایگاه داده
خود را اجرا کنید:
php artisan migrate
مسیریابی
لاراول شامل
Auth\VerificationController
کلاسی است که حاوی منطق لازم برای ارسال لینک های تایید و تایید ایمیل ها
است.
برای ثبت مسیرهای لازم برای این کنترلر،
verify
گزینه را به
Auth::routes
متد ارسال کنید:
Auth::routes(['verify' => true]);
حفاظت از مسیرها
میانافزار Route
میتواند فقط برای اجازه دسترسی کاربران تأیید شده به یک مسیر مشخص استفاده
شود.
لاراول با یک
verified
میان افزار ارسال می شود که در تعریف شده است
Illuminate\Auth\Middleware\EnsureEmailIsVerified
.
از آنجایی که این میان افزار قبلاً در هسته HTTP برنامه شما ثبت شده است،
تنها کاری که باید انجام دهید این است که میان افزار را به یک تعریف مسیر متصل کنید:
Route::get('profile', function () { // Only verified users may enter...})->middleware('verified');
بازدیدها
برای ایجاد تمام نمای لازم برای تأیید ایمیل، میتوانید از
laravel/ui
بسته Composer استفاده کنید:
composer require laravel/ui php artisan ui vue --auth
نمای تأیید ایمیل در قرار داده شده است
resources/views/auth/verify.blade.php
.
شما آزاد هستید که این نما را در صورت نیاز برای برنامه خود سفارشی کنید.
بعد از تایید ایمیل ها
پس از تأیید یک آدرس ایمیل، کاربر به طور خودکار به هدایت می شود
/home
.
میتوانید مکان تغییر مسیر تأیید پست را با تعریف یک
redirectTo
روش یا ویژگی در
VerificationController
:
protected $redirectTo = '/dashboard';
مناسبت ها
لاراول
رویدادها را
در طول فرآیند تأیید ایمیل ارسال می کند.
می توانید شنوندگان را به این رویدادها در موارد زیر متصل کنید
EventServiceProvider
:
/** * The event listener mappings for the application. * * @var array */protected $listen = [ 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ],];