3.6. 图片验证码

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

图片验证码的作用

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

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

1. 安装 gregwar/captcha

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

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

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

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

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

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
贡献者:3
讨论数量: 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