您现在的位置是:网站首页> 编程资料编程资料
Laravel 集成 Geetest验证码的方法_php实例_
2023-05-25
395人已围观
简介 Laravel 集成 Geetest验证码的方法_php实例_
Geetest 集成大致过程
- 实现登录的大致逻辑
- 注册一个极验的帐号
- 在 “极验” 的后台管理中注册一个行为验证
- 根据 官方Demo 配置我们的控制器和路由
- 根据 官方Demo 配置我们的登录模板
- 测试
Geetest 集成详细过程
1、实现登录的大致逻辑
创建控制器 php artisan make:controller GeetestController
编辑控制器 /app/Http/Controllers/GeetestController
视图就是简单的表单,省略。
2、省略 => “注册”
3、省略 => “后台登录” => “行为验证” => 申请一个 id & key
4、配置控制器和路由
首先, Demo 给出的核心类库 是一个类文件叫 class.geetestlib.php, 类名叫 GeetestLib 。我们创建一个类名一样的控制器来代替它 php artisan make:controller GeetestLib
不要拷贝类,拷贝类里面的内容进来即可
GeetestController 控制器实现逻辑
captchaId, $this->privateKey); session_start(); $data = array( "user_id" => "test", # 网站用户id "client_type" => "web", #web:电脑上的浏览器;h5:手机上的浏览器,包括移动应用内完全内置的web_view;native:通过原生SDK植入APP应用的方式 "ip_address" => "127.0.0.1" # 请在此处传输用户请求验证时所携带的IP ); $status = $GtSdk->pre_process($data, 1); $_SESSION['gtserver'] = $status; $_SESSION['user_id'] = $data['user_id']; echo $GtSdk->get_response_str(); } }
配置路由 /routes/web.php
// 集成 Geetest 验证码 Route::get('GeetestLogin', 'GeetestController@login'); //登录页面 Route::get('GeetestCheck', 'GeetestController@check'); //登录验证 (我们没写具体逻辑) Route::get('GeetestStartCaptchaServlet', 'GeetestController@startCaptchaServlet'); // 调用方法启用验证码5、完善登录模板 /resources/views/Geetest/login.blade.php
需要导入 jquery (我们用npm run dev编译的app.js整合了jquery)
需要导入 Demo 给出 gt.js ,我们放在 public/js 下
其实理论上还可以放在 /resouces/assets/js/ 下, 并且在 /resouces/assets/js/app.js 中 require 进来让它参与被编译,直接在 public/js 中打包整合生效。
在模板上,需要定义两个样式类 .show & .hide => 用于 gt.js 操控提示信息的样式 同样可以写进 /resouces/assets/sass/ 下
给 表单提交 “登录” 按钮一个id
拷贝 Demo 中提供的前端 逻辑js, 注意绑定下这个按钮
注意下 .ajax 配置的 url 必须是我们在 web.php 中定义的路有 'GeetestStartCaptchaServlet'
具体代码
Geetest 集成 Demo Geetest 集成 Demo Geetest 官方网站
测试成功
可以优化的地方
最好不要用一个 “控制器” 充当核心类库, 应该把GeetestLib 想办法集成到另一个地方去
视图模板上的 js & css 应该写在 resources/assets 里面参与生成 app.css & app.js 的编译
具体登录逻辑我们没写。应该还可以在登录验证 check() 方法再确认一次 Geetest验证 是否成功,可以参考 Demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- PHP 多任务秒级定时器的实现方法_php实例_
- 原生JS实现Ajax通过POST方式与PHP进行交互的方法示例_php技巧_
- 原生JS实现Ajax通过GET方式与PHP进行交互操作示例_php技巧_
- ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】_php实例_
- Laravel框架实现model层的增删改查(CURD)操作示例_php实例_
- layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例_php实例_
- PHP折半(二分)查找算法实例分析_php技巧_
- PHP区块查询实现方法分析_php技巧_
- 可兼容php5与php7的cURL文件上传功能实例分析_php技巧_
- PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析_php技巧_
