Laravel8集成 Geetest 极验验证码

Laravel8集成 Geetest 极验验证码

之前项目使用的行为验证一直是Geetest,但是最近升级了Laravel 框架8版本,发现之前的Geetest集成包无法使用了,安装composer 包 会报错说版本不支持8以上的版本,经过苦苦寻找发现了一个大佬集成的composer包,经测试可以使用。 地址:packagist.org/packages/zbrettonye/... 建议阅读原项目的 README 文件。 下面简单介绍一下该工具包的使用。

注册极验账号

首先需要到 极验 网站注册账号,然后新建一个应用,获取到 ID 和 KEY,留作备用,后台管理页面如下。

安装

在项目地址输入命令

composer require zbrettonye/geetest

就可以完成该包的安装 或者可以在 composer.json 的 require 中添加

 "zbrettonye/geetest": "^1.2"

然后执行

composer update

同样可以完成该包的安装。

配置

注册 ServiceProvider,在 config/app.php 的 providers 中添加 ( 注:laravel6以后无需再自行配置ServiceProvider,框架会自动加载 )

然后执行

php artisan vendor:publish

会生成一个配置文件,config/geetest.php 和视图文件 views/vendor/geetest,视图文件中你可以自定义配置,比如修改一下验证失败后的一些前端操作等。

使用

首先把刚才拿到的 ID 和 KEY 配置到 .env 文件中,因为这两个算私密内容,配置到 .env 文件中可以保证安全性。在 .env 中写入如下两行。

GEETEST_ID=0f1097bef7xxxxxx9afdeced970c63e4
GEETEST_KEY=c070f0628xxxxxxe68e138b55c56fb3b

然后,在任意的视图里,我们只需要调用

{!! Geetest::render() !!}

如下:

<form action="/" method="post">    <input name="_token" type="hidden" value="{{ csrf_token() }}">    <input type="text" name="name" placeholder="name">    {!! Geetest::render() !!}    <input type="submit" value="submit"></form>

效果如下:

服务端验证

同样你也可以自己自行发挥了。

use Illuminate\Http\Request; class BaseController extends Controller {  /**   * @param Request $request   */  public function postValidate(Request $request)  {    $result = $this->validate($request, [      'geetest_challenge' => 'geetest',    ], [      'geetest' => config('geetest.server_fail_alert')    ]);    if ($request) {      return 'success';    }  }}

常见问题

php报错cURL error 60: SSL certificate problem: unable to get local issuer certifica

这是因为没有配置信任的服务器HTTPS验证。默认情况下,cURL被设为不信任任何CAs,因此浏览器无法通过HTTPs访问你服务器。
解决方法:下载一个CA证书 cacert.pem
下载网址:curl.haxx.se/docs/caextract.html

将下载好的文件放到网站目录下,打开php.ini配置文件,找到以下代码

[curl]; A default value for the CURLOPT_CAINFO option. This is required to be an; absolute path.; curl.cainfo = 

将curl.cainfo前面的;去掉,改成cacert.pem的绝对路径即可。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!