73 lines
1.5 KiB
Markdown
73 lines
1.5 KiB
Markdown
# captcha
|
|
|
|
Middleware captcha a middleware that provides captcha service for [Tango](https://gitea.com/lunny/tango).
|
|
|
|
[API Reference](https://godoc.org/gitea.com/tango/captcha)
|
|
|
|
## Installation
|
|
|
|
go get gitea.com/tango/captcha
|
|
|
|
## Usage
|
|
|
|
```go
|
|
// main.go
|
|
import (
|
|
"gitea.com/lunny/tango"
|
|
"gitea.com/tango/cache"
|
|
"gitea.com/tango/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()
|
|
}
|
|
```
|
|
|
|
```html
|
|
<!-- templates/captcha.tmpl -->
|
|
{{.captcha}}
|
|
```
|
|
|
|
## Options
|
|
|
|
`captcha.Captchaer` comes with a variety of configuration options:
|
|
|
|
```go
|
|
// ...
|
|
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))
|
|
// ...
|
|
```
|
|
|
|
## License
|
|
|
|
This project is under Apache v2 License. See the [LICENSE](LICENSE) file for the full license text. |