creatint/captcha

适用于Laravel5.8+的验证码

1.2 2019-05-06 16:24 UTC

This package is auto-updated.

Last update: 2024-09-07 04:51:07 UTC


README

灵感来源于mews/captcha

预览

Preview

安装

可以通过在项目的 composer.json 中添加 mews/captcha 包并设置 minimum-stabilitydev(对于Laravel 5是必需的)的方式,使用Composer安装Captcha Service Provider。

{
    "require": {
        "laravel/framework": "5.0.*",
        "creatint/captcha": "dev"
    },
    "minimum-stability": "dev"
}

或者

使用Composer安装此包

composer require creatint/captcha

使用composer update更新包或使用composer install安装。

在Windows中,您需要在php.ini中包含GD2 DLL php_gd2.dll。您还需要包含 php_fileinfo.dllphp_mbstring.dll 以满足 mews/captcha 依赖项的要求。

用法

要使用Captcha Service Provider,您必须在启动Laravel应用程序时注册该提供者。主要有两种方法可以实现。

config/app.php 中找到 providers 键并注册Captcha Service Provider。

    'providers' => [
        // ...
        'Creatint\Captcha\CaptchaServiceProvider',
    ]

对于Laravel 5.1+

    'providers' => [
        // ...
        Creatint\Captcha\CaptchaServiceProvider::class,
    ]

config/app.php 中找到 aliases 键。

    'aliases' => [
        // ...
        'Captcha' => 'Creatint\Captcha\Facades\Captcha',
    ]

对于Laravel 5.1+

    'aliases' => [
        // ...
        'Captcha' => Creatint\Captcha\Facades\Captcha::class,
    ]

配置

要使用自己的设置,请发布配置。

$ php artisan vendor:publish

config/captcha.php

return [
    'default'   => [
        'length'    => 5,
        'width'     => 120,
        'height'    => 36,
        'quality'   => 90,
        'math'      => true, //Enable Math Captcha
    ],
    // ...
];

示例用法

    // [your site path]/Http/routes.php
    Route::any('captcha-test', function() {
        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 = '<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" name="check">Check</button></p>';
        $form .= '</form>';
        return $form;
    });

返回图片

captcha();

或者

Captcha::create();

返回URL

captcha_src();

或者

Captcha::src();

返回HTML

captcha_img();

或者

Captcha::img();

使用不同的配置

captcha_img('flat');

Captcha::img('inverse');

等等。

基于Intervention Image