LQ博客 www.lqblogs.com
arrows
nav

node ccap 验证码实战案例

作者:lq 来源:原创 发布时间:2019-08-07 浏览量:1360 评论:0 点赞:1

最近由于项目的需要,做了一个node ccap验证码模块的实战,期间也遇到了很多问题,但通过自己的努力和不断的探索,最终都一一解决了。

验证码实现逻辑思路:前端获取验证码的时候,向后台传递一个key(一般通用Unix时间点到毫秒,注意避免重复,当然也可以自定义key),后台生成验证码的时候,并记录该key值和对应的验证码(缓存或数据库记录都可以,一般用缓存即可,避免数据库IO操作),当前端向后台请求需要走验证码逻辑的接口时,带上该key值和对应的验证码,后台通过比对即可判断出是否验证成功。(key也可以是后台生成,前端通过获取验证码接口获取key)


具体实战分享如下,希望可以帮助到有需要的人。(注意:本实战源码是结合node koa2.)


参考网站:https://www.npmjs.com/package/ccap
                 https://www.npmjs.com/package/node-gyp


前期准备,插件需求:

这个库依赖python2.7.X和node-gyp,请先安装
npm install --global --production windows-build-tools (以管理员身份安装)
npm install cnpm -g --registry=https://registry.npm.taobao.org
cnpm install node-gyp -g
cnpm install ccap

核心代码分享如下:

var ccap = require('ccap');

getVerifyCode: async (ctx, next) => {
        var random_key = Date.now();//用时间点做唯一标识
        var captcha = ccap({
            width:256,//set width,default is 256
            height:60,//set height,default is 60 
            offset:0,//set text spacing,default is 40
            quality:100,//set pic quality,default is 50
            fontsize:50,//set font size,default is 57
            // generate:function(){//Custom the function to generate captcha text
            //      //generate captcha text here
            //      return text;//return the captcha text
            // }
        });
        var arr = captcha.get();
        ctx.body = common.json({verifyCodeImage: arr[1], key: random_key});
    },


ccap node
如果你感觉本文章对你有帮助的话,那就点赞、打赏或订阅一下吧
点赞(1)
打赏
倒踩(0)
关闭 感谢您的支持,我会继续努力
微信支付
支付宝支付
扫码打赏,建议金额1-20元
浏览量(1360)
讨论本篇文章(0)
发表评论

最多访问文章

最新文章