بسیاری از وب سایت ها، انجمن ها و ...، ثبت نام قبل از ثبت نظر، خرید محصول، پست مطلب و ... را الزامی می کنند، همین موضوع ممکن است کاربران را به استفاده از ایمیلهای یکبار مصرف( tempmail, 10minutemail, 10minmail, throwaway email, fake email, fake email generator, burning email or Trash-mail) تشویق کند.
متاسفانه کاربرانی که از این نوع ایمیل ها جهت ثبت نام استفاده می کنند، در بیشتر مواقع عملکرد نادرست و غیر اخلاقی دارند. از جمله سو استفاده از دوره رایگان استفاده از محصولات و موارد مشابه دیگر.
اکنون این سوال مطرح میشود، چطور میتوان از ثبت نام کاربرانی که با این نوع ایمیل ها اقدام به ثبت نام و یا ورود به ناحیه کاربری میکنند جلوگیری کرد؟!
پکیج CodeIgniter DEA Rule تلاش میکند تا ایمیل ارائه شده را در فهرستی جامع از ایمیل های یکبار مصرف بررسی کند و در صورتی که ایمیل مربوطه یکبار مصرف تشخیص داده شود، از ادامه ثبت نام و یا ورود کاربر جلوگیری میکند.
پکیج CodeIgniter DEA Rule برای بررسی و تشخیص یکبار مصرف بودن ایمیل از فهرستی جامع استفاده میکند، اما به این فهرست پیشفرض اکتفا نمیکند، CodeIgniter DEA Rule به شما این امکان را میدهد که پایگاه داده جدیدی را به صورت فایل ایجاد کنید و یا می توانید در فایل پیکربندی موارد دلخواه را اضافه کنید.
پکیج CodeIgniter DEA Rule در صورت تلاش کاربر به استفاده از این نوع ایمیل ها ، اطلاعات دقیقی را جمع آوری و در پایگاه داده ذخیره میکند. این اطلاعات به مدیریت کمک می کند تا تشخیص دهد چه کسانی با چه ایمیلی و آدرس ای پی در تلاش برای ثبت نام و یا ورود به سیستم بوده اند.
پکیج CodeIgniter DEA Rule در حقیقت یک قانون اعتبار سنجی سفارشی برای فریم فورک کدیگنایتر است اما، کمی بیشتر از یک قانون.
در توسعه این پکیج تا جایی ممکن از ابزار های کنترل کیفیتی که تیم هسته فریم ورک کدیگنایتر استفاده میکند، استفاده شده است.
برای نصب آن از دستور زیر استفاده کنید:
composer require datamweb/codeigniter-dea-rule
سپس اجرای فایل مایگریشن برای ایجاد جدول مورد نیاز از دستور زیر استفاده کنید
php spark migrate -n Datamweb\CodeIgniterDEARule
فایل پیکربندی پکیج را با اجرای دستور زیر در مسیر app/Config/DEARule.php منتشر کنید.
php spark dea-rule:publish
اکنون همه چیز آماده است. در فیلدهای ایمیلی که میخواهید بررسی کنید که آیا از نوع یکبار مصرف هستند از قانون اعتبار سنجی جدید با نام is_temp_email استفاده کنید.
// e.g.
$validation->setRules([
'email' => 'required|max_length[19]|is_temp_email',
]);
در اسناد توضیحات فنی بیشتری وجود دارد همچنین اگر در پروژه خود از پکیج CodeIgniter Shield برای احراز هویت و مجوز دسترسی استفاده کرده اید اینجا توضیح داده ام که چطور از قانون جدید استفاده کنید.