ایده پردازان جوان

مرجع بروزترین آموزش ها در زمینه مهندسی کامپیوتر

پیشنهاد شگفت انگیز سایت

خرید دوره آموزش ساخت فروشگاه اینترنتی مشابه دیجی کالا با قابلیت چند فروشندگی با 35 درصد تخفیف

خرید پکیج ویژه ساخت فروشگاه اینترنتی مشابه دیجی کالا به همراه نسخه اندروید با لاراول با 70 درصد تخفیف

آموزش تایید ایمیل در لاراول (بخش اول)

یکی از ویژگی های جدید که در نسخه 5.7 لاراول اضافه شده Email Verification میباشد. که توسط این قابلیت شما میتواند برای اطمینان از اینکه ایمیل کاربر ثبت نام شده در سایت صحیح هست یا نه ، لینکی را به ایمیل کاربر ارسال نمایید تا در صورت کلیک بر روی آن لینک حساب کاربری فعال شود

در این آموزش قصد داریم نحوه استفاده از این قابلیت لاراول را آموزش دهیم


برای شروع کار لازم هست یک پروژه جدید با استفاده از لاراول را ایجاد و تنظیمات اتصال به دیتابیس آن را انجام دهیم
سپس با اجرای دستور php artisan migrate جدول مربوط به کاربران را ایجاد میکنیم
در گام بعدی با اجرای دستور php artisan make:auth فرم ها و مسیر های لازم برای ثبت نام-لاگین و بازیابی کلمه عبور کاربر را ایجاد میکنیم
حال میتواینم از طریق روت register ثبت نام و از طریق روت login وارد حساب کاربری خود شویم
در فایل web.php که داخل پوشه routes میباشد بعد از اجرای دستور php artisan make:auth کد زیر اضافه میشود

Auth::routes();

این کد سبب اضافه شدن مسیر های لازم برای Authentication (لاگین ، ثبت نام و بازیابی کلمه عبور) میشود

حال برای استفاده از قابلیت Email Verification نیز لازم هست مسیر هایی را اضافه نماییم که با تغییر کد بالا به شکل زیر مسیر های لازم توسط خود لاراول اضافه میشود

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

با اجرای دستور php artisan route:list میتوانید مسیر های جدید که توسط لاراول اضافه شده را مشاهده کنید


 سه مسیر (روت) جدید برای تایید ایمیل کاربر اضافه شده

مسیر email/resend مربوط به ارسال ایمیل فعال سازی هست

مسیر email/verify صفحه ای که در صورت عدم تایید ایمیل ، کاربر به آن منتقل شده و میتواند درخواست ارسال لینک فعال سازی بدهد

مسیر email/verify/{id} همان لینکی هست که توسط لاراول تولید و به ایمیل کاربر ارسال میشود و با اجرای این مسیر ایمیل کاربر تایید میشود

و در نهایت لازم هست در کلاس User از اینترفیس MustVerifyEmail  استفاده (implement) شود مشابه کد های زیر

<?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;

    // ...
}

توجه داشته باشید که ارسال لینک به ایمیل کاربر بعد از لاگین کاربر انجام میشود

یعنی لازم هست بعد از لاگین کاربر برخی از مسیر های سایت را مختص کسانی قرار بدیم که ایمیل انها تایید شده باشد

برای اینکار شما میتوانید از middleware با نام verified استفاده کنید مشابه قطعه کد زیر

Route::get('profile', function () {
    // Only verified users may enter...
})->middleware('verified');

افرادی میتوانند به مسیرprofile دسترسی داشته باشن که لاگین کرده باشن و ایمیل آنها نیز تایید شده باشد در صورت که ایمیل کاربر تایید نشده باشید(فعال سازی حساب کاربری انجام نشده باشد) کاربر به مسیر email/verify منتقل میشود



در این صفحه به کاربر گفته میشود که برای ادامه نیاز به تایید ایمیل خود را دارد و با کلیک بر روی لینک  click here to request anothe لینک فعال سازی تولید و به ایمیل کاربر ارسال میشود
در صورت نیاز به تغییر ظاهر این قسمت میتوانید فایل مربوط را از قسمت resources/views/auth/verify.blade.php ویرایش کنید توجه داشته باشین که برای ارسال ایمیل لازم هست اطلاعات اکانت ایمیل خود را از طریق فایل env. یا فایل config/mail.php وارد کنید
نمونه اطلاعات وارد شده برای ارسال ایمیل از طریق حساب کاربری Gmail

نمونه ایمیل ارسال شده جهت فعال سازی حساب کاربری



با کلیک بر روی دکمه Verify Email Address تایید ایمیل انجام میشود

در جدول کاربران فیلدی با نام  email_verified_at وجود دارد که زمان تایید ایمیل رو نمایش میدهد و تا زمانی که ایمیل کاربر تایید نشده باشد مقدار آن null خواهد بود

در لینکی که از طرف لاراول برای تایید ایمیل ارسال شده سه پارامتر وجود دارد

اولین پارامتر id کاربری هست که میخواهد ایمیل خود را تایید کنید

پارامتر دوم  مدت زمان اعتبار لینک را مشخص میکنم

اما پارامتر سوم

مقدار امضا تولید شده (کد هش شده) برای تایید ایمیل در هیچ جدولی ذخیره نمیشود و در ساخت این کد از پارامتر های اول و دوم  (id کاربر و زمان انقضا ) نیز استفاده میشود

تا درصورتی که هر کدام از دو پارامتر اول دستکاری شود تایید ایمیل انجام نشود

در بخش بعدی با نحوه سفارشی سازی قابلیت Email Verification لاراول آشنا خواهیم شد

 

در حال دریافت اطلاعات