Laravel8集成 Geetest 极验验证码

简述

之前项目使用的行为验证一直是Geetest,但是最近升级了Laravel 框架8版本,发现之前的Geetest集成包无法使用了,安装composer 包 会报错说版本不支持8以上的版本,经过苦苦寻找发现了一个大佬集成的composer包,经测试可以使用。 地址:https://packagist.org/packages/zbrettonye/geetest  建议阅读原项目的 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
下载网址:https://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的绝对路径即可。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamCoders

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值