محمد ملکی
محمد ملکی
خواندن ۲ دقیقه·۳ سال پیش

کد امنیتی ( کپچا ) سفارشی برای لاراول


در این پست پس از مدت ها دوری از بلاگ قصد دارم ، آموزش یکی از ریپ هایی که قبلا نوشتم رو براتون بزارم .

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=&quot{{ app('captcha')->generate() }}&quot alt=&quotcaptha&quot> </div> <div> <div>{{ __('captcha.captcha') }}</div> <input id=&quotcaptcha&quot name=&quotcaptcha&quot type=&quottext&quot required autocomplete=&quotoff&quot> </div> </div> </div>

همینطور که قابل مشاهده هست ما با دستور جنریت ، تصویر امنیتی مربوط رو درست کردیم و در ورودی فرم با نام کپچا اونو درخواست کردیم .

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

captcha

با نصب پکیج اعتبار سنجی جدیدی به لیست اعتبارسنجی لاراول اضافه میشه که کپچا هست ، خیلی خب کافی هست موقع نوشتن اعتبار سنجی همانند string یا numeric عبارت captcha رو موقع اعتبار سنجی این ورودی قرار بدیم.

Illuminate\Support\Facades\Validator::validate($request->all(), [&quotcaptchaField&quot=>&quotcaptcha&quot] );

یا اینکه به صورت قدیمی و غیر استانداردی که این پکیج تعبیه شده مثل روش زیر عمل کنیم (بستگی به موقیعت هم داره) :

if(!app('captcha')->isValid($request->captcha)) { return back()->withErrors('Wrong Captcha'); }

تنظیم تصویر امنیتی

برای تنظیم باید به مسیر زیر در پروژه بریم :

config\captcha.php

در این فایل میتونیم تصویر پس زمینه ، اندازه ها ، نوع کارکتر ها و تعداد آن و فونت کارکتر ها رو تعیین کنیم .


کپچالاراولphp
توسعه دهنده بک اند
شاید از این پست‌ها خوشتان بیاید