koa2实现简单的验证码
//首先引入svg-captcha,https://www.npmjs.com/package/svg-captcha
const svgCaptcha = require('svg-captcha);
const koa = require('koa');
const router = require('koa-router')();
const bodyparser = require('koa-bodyParser');
var session = require('koa-session');
var app = new koa();
app.use(bodyparser());
router.get('/code',async(ctx)=>{
var captcha = svgCaptcha.create({
size:6,//验证码个数
fontSize:50,//验证码字体大小
width:100,//宽度
heigth:40,//高度
background:'#cc9966'//背景大小
}); ctx.response.type="image/svg+xml";//设置返回的数据格式
ctx.body = captcha.data; });
app.use(router.routes());
app.use(router.allowedMethods());
app.use(session({
keys:'koa:sess',
maxAge:10000
},app));
app.listen(80);
访问localhost/code,效果如下:

在html中,可以插入如下代码:
<img id="code" src=“localhost/code”/>
实际上我们要实现的效果是点击一次图片即可刷新一次验证码,具体实现机制是利用随机函数作为随机参数访问该地址,并且为该元素添加绑定事件
所以实际的html代码如下行:
<img id="code" src="localhost/code?t="+Math.random()*1000 />
JS代码如下:
var code = document.getElementById("code");
code.onclick = ()=>{
code.getAttribute('src','localhost/code');
};
那么如何在提交表单之后实现验证呢,实现原理是在访问localhost/code之后,后端将验证码设置到session中即可,
router.get('/code',async(ctx)=>{
var captcha = svgCaptcha.create({
size:6,//验证码个数
fontSize:50,//验证码字体大小
width:100,//宽度
heigth:40,//高度
background:'#cc9966'//背景大小
});
ctx.response.type="image/svg+xml";//设置返回的数据格式
ctx.session.code = captcha.text;//把验证码赋值给session
ctx.body = captcha.data;
});
koa2实现简单的验证码的更多相关文章
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- ThinkPHP简单的验证码实现
ThinkPHP简单的验证码实现 写一个最简单的TP验证码. 写Controller 首先在Controller/IndexController.class.php(简称Index)文件中编辑: &l ...
- python 简单图像识别--验证码
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...
- Flask学习之旅--用 Python + Flask 制作一个简单的验证码系统
一.写在前面 现在无论大大小小的网站,基本上都会使用验证码,登录的时候要验证,下载的时候要验证,而使用的验证码也从那些简简单单的字符图形验证码“进化”成了需要进行图文识别的验证码.需要拖动滑块的滑动验 ...
- Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成
random模块--random是一个生成器 首先: import random #导入模块 print (help(random)) #打印random模块帮助信息 常用function ...
- python简单处理验证码,三分钟,不能再多了
序言 大家好鸭, 又是我小熊猫啦 我们在做采集数据的时候,过快或者访问频繁,或者一访问就给弹出验证码,然后就蚌珠了~今天就给大家来一个简单处理验证码的方法 环境模块 Python和pycharm如果还 ...
- Webdriver配合Tesseract-OCR 自动识别简单的验证码
验证码: 如下,在进行自动化测试,遇到验证码的问题,一般有两种方式 1.找开发去掉验证码或者使用万能验证码 2.使用OCR自动识别 使用OCR自动化识别,一般识别率不是太高,处理一般简单验证码还是没问 ...
- Python——pytessercat识别简单的验证码
什么是验证码 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computersand Humans Apart” (全自动 ...
- 使用python以及工具包进行简单的验证码识别
识别数字验证码 首先我们准备素材,4张验证码图片如下: 第一步: 打开图像. im = Image.open('temp1.jpg') 第二步: 把彩色图像转化为灰度图像.彩色图像转化为灰 ...
随机推荐
- PHPCMS快速建站系列之 pc标签where中如何使用变量
{pc:content action="lists" catid="$catid" where="typeid='$t'" order=&q ...
- day19 django继续
上节回顾 django - 路由系统:url.py - 视图函数:views.py - 模板引擎渲染 - HttpResonse(字符串) - render(request,'index.html') ...
- Python学习之路11☞异常处理
一 错误和异常 part1:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 de ...
- win10下Anaconda3配置环境变量
有时候在win10安装好Anaconda3后,使用conda命令时依然会出现: C:\Users\dell\PycharmProjects\pytorch>conda list 'conda' ...
- 2019-3-13-win10-uwp-使用-ScaleTransform-放大某个元素
title author date CreateTime categories win10 uwp 使用 ScaleTransform 放大某个元素 lindexi 2019-3-13 19:5:56 ...
- xcode禁用代码分析的警告和内存泄漏
在使用xcode进行iphone应用开发时,经常需要添加一些第三方的类库,而一些第三方的类库由于缺少维护,从而导致类库中含有各种警告和各种内存泄漏,但并不影响运行. 倘若我们需要用到第三方库,而由不想 ...
- php 练习 1
php5 echo 和 print 语句 在PHP 中, 有两种基本的输出方法:echo 和print . 在本教程中,我们几乎在每个例子中都会用到echo和print.因此,本节为您讲解更多关于这两 ...
- C - League of Leesins-构造
题意就是给多个三元组(内部没有顺序),让你构造一个序列,使得所有的三元组都是存在的 简单的思考后就会发现一个简单的思路,开头的数一定只出现一次,进而可以找到头或者尾部的第一个三元组,然后我们知道序列最 ...
- Jmeter json处理器
- 1x1卷积
你可能会想为什么有人会用1x1卷积,因为它关注的不是一块像素,而是一个像素,图1 图1 我们看看传统的卷积,它基本上是运行在一个小块图像上的小分类器,但仅仅是个线性分类器.图2 图2 如果你在中间加一 ...