yuanlj-tea/slide-captcha

滑动验证码

安装量: 5,819

依赖者: 1

建议者: 0

安全性: 0

星标: 8

关注者: 0

分支: 75

语言:JavaScript

v1.0.3 2021-11-29 11:07 UTC

This package is auto-updated.

Last update: 2024-09-29 05:55:50 UTC


README

安装

使用composer

composer require yuanlj-tea/slide-captcha

用法

您可以使用make函数创建滑动验证码

use Tncode\SlideCaptcha;

$captcha = new SlideCaptcha();
$captcha->make();

设置logo路径

$captcha->setLogoPath(__DIR__.'/logo/logo.png');

您可以直接输出验证码

use Tncode\SlideCaptcha;

$captcha = new SlideCaptcha();
$captcha->build();
$captcha->imgout(0,1);

或者直接在HTML页面中内联

use Tncode\SlideCaptcha;

$captcha = new SlideCaptcha();
$captcha->build();
$linlie = $captcha->getInline();
echo "<img src='".$linlie."' />";

您将能够获取代码并与用户输入进行比较

use Tncode\SlideCaptcha;

$captcha = new SlideCaptcha();
$captcha->build();
$captcha->getCode();

用于Laravel

在config/app.php中注册ServiceProvider和Facade

'providers' => [
    // ...
    \Tncode\SlideCaptchaServiceProvider::class,
],
'aliases' => [
    // ...
    'SlideCode' => \Tncode\SlideCaptchaFacade::class,
],

获取服务实例:

方法参数注入

use Tncode\SlideCaptcha;

public function getImage(Request $request, SlideCaptcha $captcha)
{
  
}

通过外观类获得

use SlideCode;

public function getImageV1()
{
     SlideCode::build();
     $imgData = SlideCode::getInline();
     $code = SlideCode::getCode();
}

通过服务名称:

public function getImageV2()
{
     $captcha = app('slide_captcha');
     $captcha->build();

     $imgData = $captcha->getInline();
     $code = $captcha->getCode();
}

查看演示

public function getCaptchaDemo(Request $request, SlideCaptcha $captcha)
    {
        $key = 'slide-captcha-' . \Str::random(32);

        $captcha->build();

        \Cache::put($key, ['code' => $captcha->getCode()], 600);

        $result = [
            'captcha_key' => $key,
            'expired_at' => time() + 600,
            'captcha_image_content' => $captcha->getInline()
        ];
        return $this->responseData($result);
    }

    public function checkDemo(Request $request)
    {
        $key = $request->get('captcha_key', '');
        $code = $request->get('captcha_code', '');

        if (!\Cache::has($key)) {
            return $this->responseData('无效的key', 400);
        }

        $ret = abs(\Cache::get($key)['code'] - $code) <= 3;
        if ($ret) {
            return $this->responseData('验证成功');
        } else {
            $errKey = $key . '_error';
            $errCount = $request->session()->has($errKey) ? $request->session()->get($errKey) : 1;
            $request->session()->put($errKey, $errCount + 1);

            if ($errCount > 8) {
                \Cache::forget($key);
                $request->session()->forget($errKey);
                return $this->responseData('失败次数过多,请重新获取验证码', 400);
            }
            return $this->responseData('验证失败', 400);
        }
    }

Web演示

see /path/vendor/yuanlj-tea/slide-captcha/src/index.html

许可证

MIT