اگر آموزش مربوط به بررسی Routeها در لاراول را مشاهده کرده باشید یا خودتان با Routeها در لاراول آشنایی داشته باشید, می دانید که در route هایی که می توان تعریف کرد این امکان را داریم که قسمتی از لینک را به عنوان یک پارامتر شبیه به پارامتر هایی که از طریق متد های $_GET یا $_POST ارسال میکنیم داشته باشیم و با استفاده از Regular Expressions آنها را اعتبارسنجی کنیم. پارمترهای ارسال از طریق متد های ذکر شده داخل آبجکت Request هندل میشوند. پارامترهایی که داخل route ها پیاده سازی میشوند به صورت اجباری یا غیر اجبار به خود متد callback به عنوان پارامتر ارسال میشوند.
اعتبارسنجی پارامترها در URL با Regular Expressions
در داخل آبجکت Request ما با استفاده از تابع Validate به راحتی می توانیم روی پارامترهای ارسالی از طریق متد های درخواست http اعتبار سنجی را انجام بدهیم. در صورت نداشتن مجوز ها یا مقادیر مد نظر ما, به جای پاسخی با کد 200 یک خطا برای ارسال کننده درخواست بر میگردانیم. با استفاده از این روش متاسفانه نمی توانیم بر روی پارامتر های موجود در داخل routeها اعتبار سنجی را انجام بدهیم.
لاراول برای حل این مشکل راه کارهایی را پیاده سازی کرده است که به ما امکان میدهد تا ما بتوانیم با استفاده از عبارات Regular Expressions یک سری محدودیت ها بر روی مقادیر جایگزین شده برای پارامترهای خود اعمال کنیم که تقریبا همان کار اعتبار سنجی داده ها را برای ما انجام میدهد.
مثال تکمیلی
بطور مثال ما لینکی را تعریف کرده ایم که قرار است مشخصات کاربر را به ادمین یا خود کاربر نشان بدهد. در پروژه خود کاربران را بر اساس شناسه ی آنها که عدد می باشد از یک دیگر متمایز میکنیم. و می خواهیم این شناسه به عنوان بخشی از لینک در مروگر اجرا شود تا ما بتوانیم آن را در متد callback خود داشته باشیم و با استفاده از آن اطلاعات کاربر هدف را پیدا کنیم. اشکالی که وجود دارد این است که ما به یک عدد نیاز داریم و باید یک عدد در مقدار پارامتر برای ما ارسال شود. این احتمال هم وجود دارد که کاربر برای تنوع بخواهد به جای عدد آنجا متن را وارد کند.
در صورتی که ما آن مقدار را در متد callback چک نکرده باشیم که عدد است یا خیر به مشکل خواهیم خورد. برای اجتناب از کد های اضافی و امنیت بالا و اعتماد به مقادیر, لارول این امکان را فراهم کرده است که بتوانیم این اعتبار سنجی را هنگام اعتباردهی به route انجام بدهیم. به این شکل که با استفاده از الگوی که تعریف میشود مقادیر اعتبارسنجی میشوند.
در این ویدیو آموزشی روش پیاده سازی آن را در لاراول بیان کرده ایم.
ویژگی های این آموزش
- بررسی متد ها هدف
- پیاده سازی متد های هدف
- طراحی pattern های اعتبار سنجی
- بررسی اعتبار دهی به route ها