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

احراز هویت با کد ملی در لاراول

فربد طاهری فرد
فربد طاهری فرد
نویسنده و مدرس
📅 1401/02/09 ⏱ 1 دقیقه مطالعه
احراز هویت با کد ملی در لاراول

اگه شما هم توسعه دهنده لاراول هستید ممکنه براتون پیش بیاد بخواید اعتبار سنجی کد ملی تو سایتتون انجام بدید.لاراول یه سیستم مخصوص خودش داره برای تایید درخواست api به اسم request که توسط رول های کاستوم میتونین ارتقا بدینش.

 

خب بریم سراغ اعتبار سنجی ابتدا یک رول ایجاد میکنیم

دستور زیر تو ترمینال وارد کنید 

  Php artisan make:rule Nationalcode  

این Rule که ایجاد کردیم تو مسیر App و Rule ایجاد شده فایل مورد نظر باز میکنیم  دو متد داریم یکی passes که اعتبار سنجی تو این متد انجام میشه و یه  متد message که در صورت اشتباه بودن کد ملی پیغامی که میخایم به کابر نمایش بده مینویسیم.

تو متد passes به این شکل مینویسم

  public function passes($attribute, $value) {
 if(!preg_match("/^[۰-۹]{۱۰}$/",$value)) return false;
 for($i=۰;$i<۱۰;$i++)
      if(preg_match("/^".$i."{۱۰}$/",$value)) return false;
      for($i=۰,$sum=۰;$i<۹;$i++)
      $sum+=((۱۰-$i)*intval(substr($value, $i,۱)));
      $ret=$sum%۱۱;
      $parity=intval(substr($value, ۹,۱));
      if(($ret<۲ && $ret==$parity) || ($ret>=۲ && $ret==۱۱-$parity))
      return true; return false;
      } 

 

تو متد message به این شکل مینویسم 

  public function message() {
 return "The national code is incorrect";
 } 

با استفاده از تابع preg_match()   هر نوع اعتبار سنجی با همدیگه انجام می دیم.

این تابع دو پارامتر ورودی داره، پارامتر اول همون عبارت منظمیه که ما اونو به عنوان یک الگو یا طرح می سازیم و دومین پارامتر هم رشته ایه که قصد داریم ببینیم که آیا با عبارت با قاعده، متناظر (match) می شه یا نه.

به طور خلاصه به کمک این تابع میتونیم یک رشته را بر اساس الگویی که نوشتیم بررسی کنیم که رشته مورد نظر ما هست یا خیر.

 

و در اخر باید در رجیستر کنترلر در قسمت ولیدیت  Rule که ایجاد کردیم به ریکوئست به این شکل اضافه میکنیم

  "codemeli" => ["required", new Nationalcode],  

و حتماباید رول Nationalcode در بالا یوز کنیم

  use App\Rules\Nationalcode;  

موفق باشید.

فربد طاهری فرد
فربد طاهری فرد
نویسنده و مدرس برنامه‌نویسی
در این بخش تلاش می‌کنم تجربه‌ها و مطالب آموزشی خود را در زمینه برنامه‌نویسی، توسعه وب، هوش مصنوعی و فناوری‌های روز به زبان ساده و کاربردی با شما به اشتراک بگذارم. هدف این مقالات، انتقال دانش، پاسخ به سؤال‌های رایج و کمک به یادگیری عمیق‌تر مفاهیم برنامه‌نویسی است.

نظرات (0)

برای ثبت نظر وارد حساب خود شوید.

هنوز نظری ثبت نشده است. اولین نفری باشید که نظر می‌دهید!