文档章节

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

SunnyGo
 SunnyGo
发布于 2016/05/13 16:54
字数 336
阅读 337
收藏 4

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
beego 1.4.0 版本发布,Go 应用框架

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

astaxie
2014/08/22
5K
33

没有更多内容

加载失败,请刷新页面

加载更多

降压变换器 Buck

特点 输入输出极性相同。 工作过程 在 MOS 导通时,输入电源通过 L 和 C 滤波后向负载端提供电流;当 MOS 断开后,L 通过二极管续流,保持负载电流连续。输出电压因为占空比的作用,不会超过...

colinux
38分钟前
0
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
3
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部