تأیید ایمیل در لاراول
تایید ایمیل (Email Verification) در لاراول 5.8 ، در لاراول ما به راحتی می توانیم عملیات تایید ایمیل یا Email Verification را راه اندازی کنیم.در این مقاله یک راه تایید ایمیل را بررسی کرده ایم.با ما همراه باشید.
برای هر پروژه لاراول ما نیاز داریم که لاراول را نصب کنیم. به همین دلیل ما یک مقاله در رابطه با چگونگی نصب و پیکربندی اولیه لاراول آماده کرده ایم که می توانید از اینجا ان را مشاهده نمایید : آموزش نصب لاراول به همراه تنظیمات اولیه
بعد از نصب و پیکربندی لاراول ، با دستور زیر جداول را Migrate کنید:
php artisan migrate |
حالا اگر شما در دیتابیس پروژه خود جدول ‘users’ را مشاهده نمایید فیلدی با نام ‘email_verified_at‘ را خواهد دید.
فایل .env پروژه خود را باز کنید و پیکربندی های لازم را انجام دهید (SMTP credentials ایمیل و … را وارد کنید).ما در این مقاله به منظور تست از https://mailtrap.io/ استفاده می کنیم.شما همچنین می توانید دمو credentials از mailtrap دریافت کنید.
MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null |
به ترمینال (cmd و …) خود بروید دستور زیر راتایپ کنید:
php artisan make:auth |
اگر به مسیر resources/views در پروژه خود بروید ، یک پوشه با نام auth قرار دارد که در ین پوشه می توانید فایل های Blade از جمله فایل verify.blade.php را مشاهده نمایید.
مدل User را باز کنید (app/User.php) و MustVerifyEmail را implements کنید.مانند زیر:
<?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' , ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime' , ]; } |
در این مرحله ما باید پارامترهایی را در Auth::routes() وارد کنیم. routes/web.php را باز کنید و مانند زیر آن را تغییر دهید:
Auth::routes([ 'verify' => true]); |
این کار باعث فعال شدن کنترلر Verification جدید همراه با اکشن های مسیر (Route) می شود.شما می توانید فایل VerificationController.php را در پوشه app/Http/Controllers/Auth مشاهده نمایید
برای محافظت از مسیر HomeController ما باید متد __construct() در کنترلر
HomeController.php را مانند زیر تغییر دهیم:
public function __construct() { $this ->middleware([ 'auth' , 'verified' ]); } |
با استفاده از این روش می توانیم دسترسی به هر کنترلری رو به کاربران تأیید شده بدهیم.
آدرس http://localhost:8000/register را در مرورگر باز کنید و به پروژه خود بروید و فرم ثبت نام را پر کنید:
بعد از کلیک بر روی دکمه Register شما متنی که در تصویر پایین می بینید را مشاهده خواهید کرد:
حالا صندوق ورودی خود را برای مشاهده ایمیل تأیید بررسی کنید.من برای مشاهده ایمیل تأیید Demo inbox مربوط به mailtrap.io را بررسی می کنم:
زمانیکه من بر روی ‘Verify Email Address’ کلیک کردم من را به صفحه home هدایت کرد. بعد از این کار پایگاه داده را بررسی کردم و دیدم که فیلد email_verified_at به روز شده است.
1 Comment
مرسی از توضیحات
خوب بود…