Laravel 集成 Geetest验证码的方法
Geetest集成大致过程
- 实现登录的大致逻辑
- 注册一个极验的帐号
- 在“极验”的后台管理中注册一个行为验证
- 根据官方Demo配置我们的控制器和路由
- 根据官方Demo配置我们的登录模板
- 测试
Geetest集成详细过程
1、实现登录的大致逻辑
创建控制器phpartisanmake:controllerGeetestController
编辑控制器/app/Http/Controllers/GeetestController
视图就是简单的表单,省略。
2、省略=>“注册”
3、省略=>“后台登录”=>“行为验证”=>申请一个id&key
4、配置控制器和路由
首先,Demo给出的核心类库是一个类文件叫class.geetestlib.php,类名叫GeetestLib。我们创建一个类名一样的控制器来代替它phpartisanmake:controllerGeetestLib
不要拷贝类,拷贝类里面的内容进来即可
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(我们用npmrundev编译的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官方网站