در این پست پس از مدت ها دوری از بلاگ قصد دارم ، آموزش یکی از ریپ هایی که قبلا نوشتم رو براتون بزارم .
https://github.com/mlk9/captcha-laravel
گاها در بعضی از پروژه ها نیاز هست که از تصویر امنیتی سبک استفاده بشه که نخوایم از ریکپچا گوگل و ... استفاده کنیم . این ریپازیتوری میتونه تصویر رو بر اساس پارامتر های تنظیمی و دلخواه بسازه و خروجی بده که کاملا با نسخه های لاراول 6 به بعد سازگار .
برای نصب این ریپ مثل بقیه پکیج هایی که برای کامپوزر و لاراول نوشته میشه در ترمینال مسیر پروژه این دستور رو وارد میکنیم :
composer require mlk9/captcha-laravel
سپس برای اینکه فایل های مربوط به کانفیگ این پکیج ساخته بشه ، این دستور رو میزنیم :
php artisan vendor:publish --tag=captcha-laravel
الان دیگه پکیج نصب شده و آماده استفاده هست .
به این کد دقت کنید :
<div> <div> <div> <!-- Captcha generate --> <img src="{{ app('captcha')->generate() }}" alt="captha"> </div> <div> <div>{{ __('captcha.captcha') }}</div> <input id="captcha" name="captcha" type="text" required autocomplete="off"> </div> </div> </div>
همینطور که قابل مشاهده هست ما با دستور جنریت ، تصویر امنیتی مربوط رو درست کردیم و در ورودی فرم با نام کپچا اونو درخواست کردیم .
در سمت کنترلر باید به این شکل عمل کنیم که ابتدا مقدار کد امنیتی مورد اعتبار سنجی قرار بگیره و سپس الباقی کد رو اجرا کنه :
captcha
با نصب پکیج اعتبار سنجی جدیدی به لیست اعتبارسنجی لاراول اضافه میشه که کپچا هست ، خیلی خب کافی هست موقع نوشتن اعتبار سنجی همانند string یا numeric عبارت captcha رو موقع اعتبار سنجی این ورودی قرار بدیم.
Illuminate\Support\Facades\Validator::validate($request->all(), ["captchaField"=>"captcha"] );
یا اینکه به صورت قدیمی و غیر استانداردی که این پکیج تعبیه شده مثل روش زیر عمل کنیم (بستگی به موقیعت هم داره) :
if(!app('captcha')->isValid($request->captcha)) { return back()->withErrors('Wrong Captcha'); }
برای تنظیم باید به مسیر زیر در پروژه بریم :
config\captcha.php
در این فایل میتونیم تصویر پس زمینه ، اندازه ها ، نوع کارکتر ها و تعداد آن و فونت کارکتر ها رو تعیین کنیم .