Middleware captcha a middleware that provides captcha service for Tango.
go get github.com/tango-contrib/captcha
// main.go
import (
"github.com/lunny/tango"
"github.com/tango-contrib/cache"
"github.com/tango-contrib/captcha"
)
type CaptchaAction struct {
captcha.Captcha
renders.Renderer
}
func (c *CaptchaAction) Get() {
c.Render("captcha.html", renders.T{
"captcha": c.CreateHtml(),
})
}
func (c *CaptchaAction) Post() string {
if c.Verify() {
return "true"
}
return "false"
}
func main() {
t := tango.Classic()
t.Use(captcha.New())
t.Any("/", new(CaptchaAction))
t.Run()
}
<!-- templates/captcha.tmpl -->
{{.captcha}}
captcha.Captchaer
comes with a variety of configuration options:
// ...
t.Use(captcha.New(captcha.Options{
URLPrefix: "/captcha/", // URL prefix of getting captcha pictures.
FieldIdName: "captcha_id", // Hidden input element ID.
FieldCaptchaName: "captcha", // User input value element name in request form.
ChallengeNums: 6, // Challenge number.
Width: 240, // Captcha image width.
Height: 80, // Captcha image height.
Expiration: 600, // Captcha expiration time in seconds.
CachePrefix: "captcha_", // Cache key prefix captcha characters.
}, cache))
// ...
This project is under Apache v2 License. See the LICENSE file for the full license text.