php人机验证,89.人机验证(一) |《TDD 构建 Laravel 论坛笔记》| Laravel China 社区...
本系列文章为laracasts.com 的系列视频教程——Let's Build A Forum with Laravel and TDD 的学习笔记。若喜欢该系列视频,可去该网站订阅后下载该系列视频,支持正版;
本项目为一个 forum(论坛)项目,与本站的第二本实战教程 《Laravel 教程 - Web 开发实战进阶》 类似,可互相参照。
本节说明
对应视频教程第 89 小节:Recaptcha
本节内容
在之前,我们为了防止恶意程序自动发布话题而建立了关键词检测机制,在本节我们再为新建话题动作引入人机验证机制。我们将利用谷歌提供的 reCAPTCHA 来为我们的应用引入人机验证机制。首先我们需要登录,并注册 reCAPTCHA sites:
注册后,我们根据说明步骤依次进行。首先我们需要增加 reChaptcha 配置:
forum.env
.
.
RECAPTCHA_KEY=6LdpvGEUAAAAAKwswR10hSWgVT1ehMUeQkW50jni
RECAPTCHA_SECRET=6LdpvGEUAAAAALIvpi13rOcothX8L4xBtEQmxyP8
forum\config\services.php
'recaptcha' => [
'secret' => env('RECAPTCHA_SECRET')
]
];
接着我们修改模板,引入script和人机验证区域:
forum\resources\views\threads\create.blade.php
@extends('layouts.app')
@section('header')
@endsection
@section('content')
.
.
Publish
.
.
@endsection
现在我们进入新建话题页面:
然后我们接收前端的数据,后端发送 HTTP 请求进行人机验证。我们利用 Zttp 来发送请求。Zttp 是 Adam Wathan 为了让代码更富表现力以及简化常见用例而写的一个 Guzzle 的封装。我们来安装它:
$ composer require kitetail/zttp
修改控制器代码,增加人机验证:
forum\app\Http\Controllers\ThreadsController.php
.
use Zttp\Zttp;
.
.
public function store(Request $request)
{
$this->validate($request,[
'title' => 'required|spamfree',
'body' => 'required|spamfree',
'channel_id' => 'required|exists:channels,id'
]);
$response = Zttp::asFormParams()->post('https://www.google.com/recaptcha/api/siteverify',[
'secret' => config('services.recaptcha.secret'),
'response' => $request->input('g-recaptcha-response'),
'remoteip' => $_SERVER['REMOTE_ADDR']
]);
if (! $response->json()['success']) {
throw new \Exception('Recaptcha failed');
}
.
.
}
.
.
如果我们不进行人机验证直接发布话题,则会报错:
进行了人机验证之后再发布话题:
php人机验证,89.人机验证(一) |《TDD 构建 Laravel 论坛笔记》| Laravel China 社区...相关推荐
- 使用captcha库实现人机验证的图片验证
安装captcha库 使用go get命令获取captcha库 go get github.com/dchest/captcha 构建响应函数 // 发送图片验证码图片(gee7为自搭建web框架,可 ...
- 【Vue3】滑动验证组件 | 滑动验证
前言 滑块验证不只判断是否滑动到尾部,真正的目的是检测用户行为,检测行为是人为.脚本.还是其它. 防止使用脚本大量注册.请求等 .比如发送请求时,判断用户在某个页面停留了多长时间.登录.注册时是否点击 ...
- sencha touch Model validations 自定义验证 二选一输入验证、重复验证、时间验证、比较验证、条件验证(2015-1-14)...
项目初始化时执行以下代码 1 //重写模型,方便进行自定义验证 2 Ext.define("Ext.zh.data.Model", { 3 override: "Ext. ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- R语言构建xgboost文本分类模型(bag of words):xgb.cv函数交叉验证确定xgboost模型的最优子树个数、交叉验证获取最优子树之后构建最优xgboost模型并评估模型文本分类效能
R语言构建xgboost文本分类模型(bag of words):xgb.cv函数交叉验证确定xgboost模型的最优子树个数.交叉验证获取最优子树之后构建最优xgboost模型并评估模型文本分类效能 ...
- R语言构建xgboost模型:xgb.cv函数交叉验证确定模型的最优子树个数(可视化交叉验证对数损失函数与xgboost模型子树个数的关系)、交叉验证获取最优子树之后构建最优xgboost模型
R语言构建xgboost模型:xgb.cv函数交叉验证确定模型的最优子树个数(可视化交叉验证对数损失函数与xgboost模型子树个数的关系).交叉验证获取最优子树之后构建最优xgboost模型 目录
- 计算机系统验证课件,回顾性验证及再验证简介(ppt 42页)
回顾性验证及再验证简介目录: 一. 验证-生命周期 二. 验证的方法及适用条件 三. 验证状态的维持-生命周期法 四. 变更控制 五. 变更控制 六. 回顾性验证 七. 再验证 八. 工艺用水 九. ...
- MVC验证05-自定义验证规则、验证2个属性值不等
本文体验2个属性值不等.即当一个属性输入值,另外一个属性输入的值不能和第一个属性值相等.相关文章包括: MVC验证01-基础.远程验证 MVC验证02-自定义验证规则.邮件验证 MVC验证03 ...
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证...
{ field : 'startPort', title : "起始端口", editor: "text", width : 50, editor: { ...
最新文章
- Spring Boot 入门——Spring Boot 简介||微服务简介
- 接口responsecode返回500_springboot+redis+Interceptor+annotation实现接口自动幂(989)
- Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用
- CentOS内核升级
- 【Oracle】to_char技巧
- 【感知机/支持向量机】点到平面距离公式的由来
- java用io流存信息_Java io流的学习
- 【30天精通JavaScript ~ 网络篇】JavaScript 网络请求与远程资源
- java反编译数组_JavaGuide/JAD反编译tricks.md at master · Github-Programer/JavaGuide · GitHub...
- 20世纪物理学进展与百年重大新技术
- [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体
- 程序员的头符合好头的标准吗?
- Windows搭建青龙面板教程
- (万字超详细的复习资料丨没有之一)通信原理考试复习资料,按需收藏加关注。
- Auto.js 实现钉钉实时抢红包
- Linux学习之错误与解决记录(持续更新)
- BC渗透的常见切入点(总结)
- 什么是勒索病毒?有哪些危害?如何预防?
- Java的特征/特点(全)
- 热水结冰比冷水快?半世纪争议终于解开
热门文章
- python自动办公 pdf_别再问如何用 Python 提取 PDF 内容了!
- 电脑链接wifi显示无法连接服务器,电脑连接wifi出现感叹号_电脑连接wifi成功但上不了网怎么办?-192路由网...
- Arcgis使用教程(六)ARCGIS空间数据查询
- php 设置斜体字体,斜体 - FontForge 教程 | BootWiki.com
- 计算机毕业设计android的消防安全知识宣传app(源码+系统+mysql数据库+Lw文档)
- android 读写文件 简书,Android 读取asset文件
- Hololens官方教程精简版 - 08. Sharing holograms(共享全息影像)
- sap 流程图 退货销售订单_销售订单_退货及退回客户(采用高级退货)
- A Survey on Deep Learning Techniques for Stereo-based Depth Estimation论文阅读
- python打招呼的代码_GitHub - worry45678/LearnPython: 以撸代码的形式学习Python