3.6. 图片验证码

本教程最新版为 9.x,当前版本已放弃维护,请阅读最新版本!

图片验证码的作用

为了保证短信验证码接口不会被攻击,我们使用 api.throttle 限制了接口访问频率,但是依旧不安全。我们限制了 IP,但是攻击者依然可以使用大量代理 IP 进行攻击。这个时候,就需要增加一些机器无法识别,或者说识别成本高的人为因素 —— 验证码。

回忆一下『知乎APP』完整的注册流程,我们可以在发送短信验证码之前,增加一步图片验证码。

1. 安装 gregwar/captcha

图片验证码接口的流程是:

  • 生成图片验证码
  • 生成随机的 key,将验证码文本存入缓存。
  • 返回随机的 key,以及验证码图片

Larabbs 项目中已经安装了 mews/captcha,对于网页应用来说,这个组件使用起来十分方便,但是它依赖 session,而且没法获取和设置验证码文本,不适用于 API 的用例。在 API 的开发中,我们将选择使用 gregwar/captcha 来完成图片验证码的功能。

$ compo...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 31

郎中航
分享下,实现图片验证返回网址?
3 个点赞 | 9 个回复 | 问答 | 课程版本 5.5
heart_5653
App ()->environment ('production') 这个是什么?
3 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
chaijiawei
mews/captcha 也适用于 API
2 个点赞 | 5 个回复 | 分享 | 课程版本 5.8
xiaoku
为何我的图片显示不出来
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
gyp719
验证码大小写比对
2 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
MArtian
使用 mews/captcha 实现 API 验证接口
2 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
beatles
最后一步『发送手机验证码』接口, 需要先获取图片验证码
2 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
monch
过期时间那里选择时间格式好,还是秒数好
1 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
lixiang9194
如何实现存储验证码返回网址?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
caojianx
gregwar/captcha 的大小写问题 hash_equals ()
1 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
关于图片验证码的疑问??
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
pee2bee
gregwar/captcha 自定义验证码的位数和内容
1 个点赞 | 0 个回复 | 分享 | 课程版本 6.x
PHPHub
返回 Base_64 图片被转义
0 个点赞 | 11 个回复 | 问答 | 课程版本 5.8
dptms
为什么验证码错误就要清除缓存呢?
0 个点赞 | 10 个回复 | 问答 | 课程版本 5.5
王鲸弋
前端请求图片验证码接口但是我收不到参数是为什么?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
zzzzzzmmmmm
$this->response 的 response 不识别问题
0 个点赞 | 3 个回复 | 分享 | 课程版本 5.5
Marke
手机收不到验证码?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
王鲸弋
图片验证码怎么改成 纯数字的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Mengwei
使用图形验证码是否安全?
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
kirit0
str_random 未定义??
0 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
飞翔宝宝
安装 gregwar/captchaba
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
admin0000
获取图片验证码时不应该要求用户输入手机号
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.8
Zhangzhuow
为什么会出现跨域错误?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
CarlGao
代码位置?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
道生一
图片验证码已失效
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x