文档章节

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

SunnyGo
 SunnyGo
发布于 2016/05/13 16:54
字数 336
阅读 364
收藏 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
2018/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
769
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
3.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

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
39分钟前
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
59分钟前
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部