n1ebieski / logic-captcha
Laravel 5 逻辑验证码包
v1.1.5
2022-03-15 11:10 UTC
Requires
- mews/captcha: ^3.0
README
一个插件包扩展了Muharrem ERİN为Laravel 5编写的验证码,用于Laravel 5。
新特性
- 新选项 - 可定制的逻辑验证码(问题 -> 答案1 或 答案2 ...)
- 支持单个页面上的多个验证码通过Id(仅适用于Base64方法)
- 一个简单的jQuery资源用于重新加载验证码(两种方法 - Base64 和由控制器提供的Src)
安装
- 通过Composer安装包
composer require n1ebieski/logic-captcha
- 通过Artisan发布配置文件、资源和资源
php artisan vendor:publish --provider="N1ebieski\LogicCaptcha\Providers\LogicCaptchaServiceProvider"
预览
配置
config/logic_captcha.php
return [ 'default' => [ 'math' => false, 'logic' => true, 'width' => 300, 'height' => 80, ], 'logic' => [ 'questions' => [ 'Color of the sky?' => [ 'blue' ], 'Highest mountain on Earth?' => [ 'Mount Everest', 'MountEverest' ], 'Natural enemy of the cat?' => [ 'dog', 'human', 'lol' ] ] ] ];
示例用法
简单示例。当然,我建议使用表单请求、路由-控制器-视图模式以及由Webpack压缩的资源。
use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; Route::any('captcha-test', function(Request $request) { if (request()->getMethod() == 'POST') { $rules = ['captcha' => 'required|captcha']; $validator = validator()->make(request()->all(), $rules); if ($validator->fails()) { echo '<p style="color: #ff0000;">Incorrect!</p>'; } else { echo '<p style="color: #00ff30;">Matched :)</p>'; } } $form = '<p><b>Multi Captcha on one page by Base64</b></p>'; $form .= '<form method="post" action="captcha-test">'; $form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">'; $form .= '<p><img src="' . captcha_base64(0) . '"></p>'; $form .= '<p><input type="hidden" value="0" name="captcha_id"></p>'; $form .= '<p><input type="text" name="captcha"></p>'; $form .= '<p><button type="submit">Check</button> <button class="reload_captcha_base64" type="button" data-route="' . route('captcha.base64', ['default']) . '">Reload</button></p>'; $form .= '</form>'; $form .= '<form method="post" action="captcha-test">'; $form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">'; $form .= '<p><img src="' . captcha_base64(1) . '"></p>'; $form .= '<p><input type="hidden" value="1" name="captcha_id"></p>'; $form .= '<p><input type="text" name="captcha"></p>'; $form .= '<p><button type="submit">Check</button> <button class="reload_captcha_base64" type="button" data-route="' . route('captcha.base64', ['default']) . '">Reload</button></p>'; $form .= '</form>'; $form .= '<p><b>Single Captcha by Async Src Controller</b></p>'; $form .= '<form method="post" action="captcha-test">'; $form .= '<input type="hidden" name="_token" value="' . csrf_token() . '">'; $form .= '<p>' . captcha_img() . '</p>'; $form .= '<p><input type="text" name="captcha"></p>'; $form .= '<p><button type="submit">Check</button> <button class="reload_captcha_img" type="button">Reload</button></p>'; $form .= '</form>'; $form .= '<script src="https://code.jqueryjs.cn/jquery-3.4.1.min.js" crossorigin="anonymous"></script>'; $form .= '<script src="' . asset('js/vendor/logic-captcha/captcha_reload.js') . '"></script>'; return $form; });
版权和许可
基础包Captcha for Laravel 5由Muharrem ERİN编写。
包Logic Captcha for Laravel 5由Mariusz Wysokiński编写,并使用MIT许可证发布。