极验(Geetest) Laravel 5 扩展使用教程

版权声明:本文为博主原创文章,未经博主允许不得转载。个人博客:www.saoguang.top https://blog.csdn.net/u011580175/article/details/82152248

我的个人博客:https://www.saoguang.top/

一、人机验证

  • 人机验证:简单的说就是,能够阻止机器通过,只允许人通过的验证。
  • 常见的人机验证:验证码(有静态的和GIF动画的),谷歌的recaptcha人机验证(很难做到破解)。

二、极验Geetest

三、Geetest在Laravel使用

  • Geetest在Laravel上的使用非常的简单方便。因为已经被集成制作为Laravel扩展。
  • 用到的扩展是:germey/geetest

注册Geetest账号,并创建应用,获取APPID和APPKEY

  • 这是第三方API使用常常需要的步骤。
  • 进入Geetest官网,注册,登陆,创建应用(不用填什么域名,直接全部填写应用的名称就可以了)
  • 获取到ID和KEY这里写图片描述

安装Geetest扩展到Laravel 5项目

个人推荐:使用第一种安装方式(因为,第二种安装方式运行composer.json会更新你的所有扩展,会很慢)
1. 安装扩展
1. 简单的可以通过直接使用Composer命令进行安装。(没有Composer自行安装)
- $ composer require germey/geetest
2. 或者选择通过配置composer.json文件
- 将"germey/geetest": "~3.0"添加到"require"键中。
- 运行$ composer update
2. 添加扩展
1. 添加Germey\Geetest\GeetestServiceProvider::classconfig/app.php文件的providers键中。
2. 你还可以注册Geetest Facadeconfig/app.php文件的aliases
- 添加'Geetest' => Germey\Geetest\Geetest::classconfig/app.phpaliases

配置Geetest

  1. 运行命令$ php artisan vendor:publish --tag=geetest以创建与扩展有关的配置文件config/geetest.php
  2. 在.env配置文件中,添加(替换成你的)以下条目。
GEETEST_ID=5c8725147***********bbf5cb48f740
GEETEST_KEY=780fb30*****************9f88bbf2

Geetest使用方法

  1. 直接在视图中调用 Geetest的render()方法,就能够创建出,Geetest验证。
    • {!! Geetest::render() !!}
    • 效果图:这里写图片描述
    • 你还可以通过给render()传参,改变样式(默认是popup样式)

      • {!! Geetest::render('float') !!}
        {!! Geetest::render('bind') !!}
        {!! Geetest::render('popup') !!}
        {!! Geetest::render('custom') !!}

Geetest后端验证编写

  1. 由于前端只是提供人机验证,如果验证成功的话,会通过form传给后端三个键值对,这三个键值对就可以提供给后端判断人机验证结果。
    • 需要注意的是:这三个键值对是一次性的,后端验证通过之后,第二次将失效。
    • 这里写图片描述
  2. 后端验证代码及其简单,直接通过Laravel表单验证的geetest验证字段,对geetest_challenge进行验证,验证失败的提示语句可以直接在config/geetest.php配置文件中的client_fail_alert字段修改(默认提示:请正确完成验证码操作)。

    $this->validate($request, [
    'geetest_challenge' => 'geetest',
    ], [
    'geetest' => config('geetest.server_fail_alert')
    ]);

将会出现的问题以及解决方式

  • 在本地测试的时候,为了开发方便,我的apache配置的是一个根目录,然后其他的项目全部放在根目录下,所以url变成了这样,http://localhost/SME_Service_Station/public/,但是Geetest获取验证参数的时候,Ajax请求的时候,访问的是http://localhost/geetest这个url,所以会一直显示验证加载中。所以,需要到config/geetest.php配置文件中,修改url的值。
    这里写图片描述
  • 测试的时候往往都是http协议,但是上线之后,可能使用的是https协议,所以,需要到config/geetest.php配置文件中修改protocol属性

猜你喜欢

转载自blog.csdn.net/u011580175/article/details/82152248
今日推荐