因为快讯的工作需要,所以就学起了如何引入验证码模块。原本觉得难以想象,看着网上各色教程各种实现。完全没头绪。第一次接触一个模块背后牵扯一大堆的依赖,让你倒在安装依赖的路上。
安装
使用captchapng
模块,先安装了captchapng。
引用模块
然后就是贴上这堆代码,设置生成验证码的配置,详情看注释就可以。生成后,肯定要将验证码传递出去才能验证呀。所以将它保存在session
里面传递到验证的地方去:(Ps:这部分代码是参考某一位大神的博客的,可是忘了留地址。如果侵权,给我留下地址。马上补回来。)
生成验证码
在html页面只需要设置img
的src
为一个路由链接到这个模块就行。服务器就能返回一个图片回去。
最后
不过这个验证码模块是较为简单的,只能生成数字的模块。有了第一步,以后争取学习更复杂的验证码模块!或者等node.js官方自带图片模块后,这种依赖的状况就能改善吧。
更新
session
和朋友交流过之后才发现自己有一个地方没考虑周到,不过不体现在该代码上。但是也记录在此吧。就是比较完验证码后需要将session的值清空,不然也起不到防止爬虫的作用。——爬虫只需要跳过你验证码更新的模块就可以爬取数据了。
BUG
该代码中有一处错误,就是如果直接生成的是0-9999的字符串数组,在转换为数字验证码的时候,如果是0开头的话,会导致验证码出错。(开头为0的数字被省略)。
解决方法
生成的是random9000,再加1000.代码已经修改。