我是靠谱客的博主 贪玩夏天,最近开发中收集的这篇文章主要介绍web项目010-----图形验证码逻辑分析图形验证码逻辑分,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

图形验证码逻辑分

我们看一下注册页面

 

我们输入手机号,然后输入图片验证码,图片验证码正确才可以发送短信验证码,而却每次发送要想隔60秒

关于这种比较成熟的技术,一定都有大神写好了,所以我们直接拿过来使用

这个文件里就存放着写好的图形验证码的代码

我们直接复制到我们的utils文件夹下

我们打开写好的图形验证码的代码运行一下

我们现在不需要知道他是怎么写的,我们只需要知道他返回了两个数据,我们需要使用它,引入captcha

我们在蓝图文件夹中创建一个文件,来调用我们的验证码

这里涉及到一个REST风格

REST架构风格详解:https://mp.weixin.qq.com/s?src=11&timestamp=1606106419&ver=2723&signature=O1pCH*ErzigAO97KwxpScJzxqipTpCXH3iC9K19S4zsXmfSluADAENqqmJNAHIs1CAbDp9-KAMAYrZMfIBZnyXLAxdzJNCi4XfybCWPisLmU7k*wK2Es70qzSpQWAetw&new=1

保存在Redis中有一个特点,读取快

现在又出现一个问题,我和好几个人同时访问,生成验证码,怎么知道这个验证码是我的,他应该给每一个验证码生成一个唯一的标识:我们需要使用uuid

uuid:https://mp.weixin.qq.com/s?src=11&timestamp=1606106857&ver=2723&signature=jsWCKsuxOyvVJ7EBa2i-A1TgBI6OzQrtMQrBYyMiDej8C4n6nBl*ja2HtbyurJkqRRY3iqWhvsv8BUutPFzWAibSrozGNY0kmsydXE*arJlXdfBrMHivj6Trb89ba*U5&new=1

这个uuid就是用户的唯一标识,如果我们不用uuid呢,我们可以使用时间戳+随机数

我们在我们新创建的verify_code.py文件中写入我们的代码

首先导入蓝图

from . import api

然后创建路由

# UUID image_code_id
# GET 127.0.0.1/api/v1.0/image_codes/<image_code_id>
@api.route("/image_codes/<image_code_id>")
def get_image_code(image_code_id):
    pass

我们在Redis中用那种数据类型来保存数据呢,还有如何处理过期时间(一个验证码长时间不输入就会过期)

Redis命令参考:http://doc.redisfans.com/

我们有两个选择:

  1. hash:image_code:{id:1,name:zaaaacki},但是哈希没有办法设置过期时间
  2. string:uuid:xxxx    可以设置过期时间  : SETEX

总结:图形验证码会遇到的一些问题,

  • 首先我们定义的路由要使用REST风格
  • 然后给验证码生成唯一表示
  1. uuid
  2. 时间戳+随机数
  • 我们需要保存验证码:保存在Redis,数据库等等(这里我们保存在Redis中,因为读写快)
  • 然后确定保存的数据类型:是字符串类型还是哈希类型
  • 然后设置验证码过期时间:哈希类型不能设置过期时间,所以我们选择字符串类型使用SETEX命令

最后

以上就是贪玩夏天为你收集整理的web项目010-----图形验证码逻辑分析图形验证码逻辑分的全部内容,希望文章能够帮你解决web项目010-----图形验证码逻辑分析图形验证码逻辑分所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部