تایید ایمیل
معرفی
بسیاری از برنامه های کاربردی وب از کاربران می خواهند که آدرس ایمیل خود را قبل از استفاده از برنامه تأیید کنند. لاراول به جای اینکه شما را مجبور به اجرای مجدد آن در هر برنامه کند، روشهای مناسبی را برای ارسال و تأیید درخواستهای تأیید ایمیل ارائه میکند.
آماده سازی مدل
برای شروع، بررسی کنید که
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; // ...}
ملاحظات پایگاه داده
ستون تأیید ایمیل
در مرحله بعد،
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 "^1.2" --dev 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', ],];