Menu
本书未发布

3.6. 图片验证码

图片验证码的作用

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

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

1. 安装 gregwar/captcha

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

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

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

$ composer require gregwar/captcha

本文章首发在 Laravel China 社区

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

上一篇 下一篇
讨论数量: 18

Marke
手机收不到验证码?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
hooook
为什么验证码错误就要清除缓存呢?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
lixiang9194
如何实现存储验证码返回网址?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
ahkxhyl
$this->response 的 response 不识别问题
0 个点赞 | 3 个回复 | 分享 | 课程版本 5.5
heart_5653
App ()->environment ('production') 这个是什么?
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Gebriel
分享下,实现图片验证返回网址?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
luphp_安轮粉丝
关于图片验证码的疑问??
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
Carlgao
代码位置?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Avant
为什么会出现跨域错误?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
monch
过期时间那里选择时间格式好,还是秒数好
1 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
xiaoku
为何我的图片显示不出来
2 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
iVerywang
前端请求图片验证码接口但是我收不到参数是为什么?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
iVerywang
图片验证码怎么改成 纯数字的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
beatles
最后一步『发送手机验证码』接口, 需要先获取图片验证码
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
刻意练习,每日精进。
0
点赞
422
浏览
18
讨论