文档章节

Beego下如何使用captcha生成验证码

SunnyGo
 SunnyGo
发布于 2016/05/13 16:54
字数 336
阅读 290
收藏 4
点赞 2
评论 0

Beego框架真的很贴心,默认有captcha这个验证码插件。在utils/captcha下面

使用方法

import(
    "github.com/astaxie/beego/cache"
    "github.com/astaxie/beego/utils/captcha"
)

var cpt *captcha.Captcha
func init() {
    store := cache.NewMemoryCache()
    cpt = captcha.NewWithFilter("/captcha/", store) //一定要写在构造函数里面,要不然第一次打开页面有可能是X
}

在模板里面写上   

<form action="/" method="post">
    {{create_captcha}}
    <input name="captcha" type="text">
</form>

就ok了,最贴心的是居然连onclick事件也已经做在了里面,方便。

还有判断也已经写好了,只要在post里面写上

if !cpt.VerifyReq(this.Ctx.Request) {
	//你的代码
}

默认的验证码是6位,200px宽,这个是可以自己设置的

cpt是一个结构体:

// Captcha struct
type Captcha struct {
    // beego cache store
    store cache.Cache

    // url prefix for captcha image
    URLPrefix string

    // specify captcha id input field name
    FieldIdName string
    // specify captcha result input field name
    FieldCaptchaName string

    // captcha image width and height
    StdWidth  int
    StdHeight int

    // captcha chars nums
    ChallengeNums int

    // captcha expiration seconds
    Expiration int64

    // cache key prefix
    CachePrefix string
}

 你看到暴露的这些接口了吗?图片的大小,字数都是可以调整的,字体、弯曲程度这些就不行。不过宽度也不是可以随意设置的,我测试的结果是宽度不能小于100,高度不能小于40.不知道是什么情况。

上代码:

func init() {
	store := cache.NewMemoryCache()
	cpt = captcha.NewWithFilter("/captcha/", store)
	cpt.ChallengeNums = 4
	cpt.StdWidth = 100
	cpt.StdHeight = 40
}

 

© 著作权归作者所有

共有 人打赏支持
SunnyGo
粉丝 7
博文 28
码字总数 8249
作品 0
东城
技术主管
Zend的Captcha机制

如何生成验证码图片?使用php的GD? ok,right。其实Zend的Captcha模块已经封装好了。这篇文章就说一下如何使用Zend的Captcha模块。 环境安装 首先Zend的Captcha需要安装GD。查看有没有安装G...

王二狗子11
01/08
0
0
Cakephp中使用Captcha实现更加安全的验证码

Captcha官方 http://www.captcha.ru/en/ Captcha下载 http://www.captcha.ru/en/kcaptcha/ 使用Captcha可以实现安全的验证码功能,Captcha提供了多种风格和样式的风格比如 使用方法超级简单 ...

thinkly
2009/06/25
0
0
Cakephp项目中Captcha验证码的解决方案!

原文章地址:http://www.thinkly.cn/index.php/archives/278 Captcha官方 http://www.captcha.ru/en/ Captcha下载 http://thinkly.cn/download/tools/kcaptcha_1.2.6.rar 使用Captcha可以实现......

thinkly
2009/06/25
3K
1
和lock一起学beego 博客系统开发为例(三)

mongodb: MongoDB(二):基础知识 Django学习笔记:为Model添加Action 和lock一起学beego 博客系统开发为例(三) 深入Go语言 - 1 django captcha imagintft: 关于captcha使用The _imagingft C ...

d_watson
2016/06/16
18
0
Play!框架文档翻译:验证码(Captcha)

Because anyone can post a comment to our blog engine, we should protect it a little to avoid automated spam. A simple way to protect a form from this is to add a captcha image. ......

红薯
2010/07/13
2.3K
0
beego 1.4.0 版本发布,Go 应用框架

这个版本整整憋了两个月时间,主要是我们真的做了好多功能性上面的改进,这里要感谢所有给beego贡献的用户,也感谢给beego持续提各种改进意见的用户,下面是我们这次改进的特性 1. bee工具的...

astaxie
2014/08/22
5K
33
使用Java制作验证码

验证码介绍 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是...

ZeroOne01
2017/11/19
0
0
CodeIgniter tips:验证码帮助类

在CI中,做验证类可以这样做,首先给出的是手册中的做法 加载辅助函数 用下面的代码加载验证码辅助函数:网络营销培训 $this->load->helper('captcha'); 可用的函数如下: captcha_create($data...

网络营销
2012/02/09
0
0
TODO:Laravel增加验证码

TODO:Laravel增加验证码 1. 先聊聊验证码是什么,有什么作用? 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和...

OneTODO
2016/12/22
37
0
仅需15分钟,使用OpenCV+Keras轻松破解验证码

  选自Medium   作者:Adam Geitgey   机器之心编译   参与:李泽南、蒋思源      登录网站时必须输入的图片验证码可以用来识别访问者到底是人还是机器——这同时也是某种程度上...

机器之心
2017/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、登录流程图 二、小程序客户端 doLogin:function(callback = () =>{}){let ...

公众号_好好学java
33分钟前
0
1
流利阅读笔记28-20180717待学习

“我不干了!” 英国脱欧大臣递交辞呈 雪梨 2018-07-17 1.今日导读 7 月 6 日,英国政府高官齐聚英国首相的官方乡间别墅——契克斯庄园,讨论起草了一份关于英国政府脱欧立场的白皮书。可是没...

aibinxiao
今天
6
0
OSChina 周二乱弹 —— 理解超算排名这个事,竟然超出了很多人的智商

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @-冰冰棒- :分享Ed Sheeran/Beyoncé的单曲《Perfect Duet (with Beyoncé)》 《Perfect Duet (with Beyoncé)》- Ed Sheeran/Beyoncé 手机...

小小编辑
今天
138
7
Android 获取各大音乐平台的真实下载地址

废话 电脑使用谷歌浏览器或者QQ浏览器的时候。。。。。。。说不清楚,还是看图吧 大概意思就是,只要网页上需要播放,只要能播放并且开始播放,这个过程就肯定会请求到相关的音乐资源,然后就...

她叫我小渝
今天
0
0
shell中的函数、shell中的数组、告警系统需求分析

shell中的函数 格式: 格式: function f_name() { command } 函数必须要放在最前面 示例1(用来打印参数) 示例2(用于定义加法) 示例3(用于显示IP) shell中的数组 shell中的数组1 定义数...

Zhouliang6
今天
2
0
用 Scikit-Learn 和 Pandas 学习线性回归

      对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了。 1. 获取数据,定义问题     没有...

wangxuwei
今天
1
0
MAC安装MAVEN

一:下载maven压缩包(Zip或tar可选),解压压缩包 二:打开终端输入:vim ~/.bash_profile(如果找不到该文件新建一个:touch ./bash_profile) 三:输入i 四:输入maven环境变量配置 MAVEN_HO...

WALK_MAN
今天
0
0
33.iptables备份与恢复 firewalld的9个zone以及操作 service的操作

10.19 iptables规则备份和恢复 10.20 firewalld的9个zone 10.21 firewalld关于zone的操作 10.22 firewalld关于service的操作 10.19 iptables规则备份和恢复: ~1. 保存和备份iptables规则 ~2...

王鑫linux
今天
2
0
大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
今天
1
1
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部