极验验证码 v3.0 Laravel
采用了Germeyd的package,在此基础上添加后台获取Geetest ID 和 KEY 方法,可不从env获取。
-
安装包文件
$ composer require zbrettonye/geetest
Laravel5.5+ 可跳过此步骤
-
config/app.php 注册 ServiceProvider:
ZBrettonYe\Geetest\GeetestServiceProvider::class,
-
config/app.php 添加 Alias
'Geetest' => ZBrettonYe\Geetest\Facades\Geetest::class,
-
创建配置文件、视图级资源文件:
php artisan vendor:publish --provider='ZBrettonYe\Geetest\GeetestServiceProvider'
-
.env
文件增加配置项GEETEST_ID
和GEETEST_KEY
或 通过添加 Component CaptchaVerify 来获取 ID 和 KEY
配置项 | 说明 | 选项 | 默认值 |
---|---|---|---|
width | 按钮宽度 | 单位可以是 px, %, em, rem, pt | 300px |
lang | 语言,极验验证码免费版不支持多国语言 | zh-cn, en, zh-tw, ja, ko, th | zh-cn |
server-get-config | 从服务器获取GeetestKEY | True | False |
product | 验证码展示方式 | popup, float | popup |
geetest_id | 极验验证码ID | ||
geetest_key | 极验验证码KEY | ||
client_fail_alert | 客户端失败提示语 | 请完成验证码 | |
server_fail_alert | 服务端失败提示语 | 验证码校验失败 |
-
前端使用 安装扩展后,在页面需要使用极验验证码的地方增加如下代码
{!! Geetest::render() !!}
-
服务端校验 在服务端使用
geetest
验证规则进行二次验证,示例代码:$this->validate($request, [ 'geetest_challenge' => 'required|geetest' ], [ 'geetest' => config('geetest.server_fail_alert') ]);
-
配置项:server-get-config - 服务器获取GeetestKey 通过调用 Components CaptchaVerify 的 geetestCaptchaGetConfig 方法来获取 Geetest 配置,方便实现由后台配置的KEY 和 ID
<?php
namespace App\Components;
/**
* Class CaptchaVerify
*
* @package App\Components
*/
Class CaptchaVerify
{
public static function geetestCaptchaGetConfig()
{
return [
"geetest_id" => Helpers::systemConfig()["geetest_id"], // 后台获取 id
"geetest_key" => Helpers::systemConfig()["geetest_key"] // 后台获取 key
];
}
}
?>
The MIT License (MIT). Please see License File for more information.