captcha

package
v2.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2021 License: Apache-2.0, MIT, Apache-2.0 Imports: 20 Imported by: 0

README

Captcha

an example for use captcha

package controllers

import (
	"github.com/beego/beego/v2"
	"github.com/beego/beego/v2/client/cache"
	"github.com/beego/beego/v2/server/web/captcha"
)

var cpt *captcha.Captcha

func init() {
	// use beego cache system store the captcha data
	store := cache.NewMemoryCache()
	cpt = captcha.NewWithFilter("/captcha/", store)
}

type MainController struct {
	beego.Controller
}

func (this *MainController) Get() {
	this.TplName = "index.tpl"
}

func (this *MainController) Post() {
	this.TplName = "index.tpl"

	this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request)
}

template usage

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

Documentation

Overview

Package captcha implements generation and verification of image CAPTCHAs. an example for use captcha

``` package controllers

import (

"github.com/beego/beego/v2"
"github.com/beego/beego/v2/client/cache"
"github.com/beego/beego/v2/server/web/captcha"

)

var cpt *captcha.Captcha

func init() {
	// use beego cache system store the captcha data
	store := cache.NewMemoryCache()
	cpt = captcha.NewWithFilter("/captcha/", store)
}
type MainController struct {
	beego.Controller
}
func (this *MainController) Get() {
	this.TplName = "index.tpl"
}
func (this *MainController) Post() {
	this.TplName = "index.tpl"

	this.Data["Success"] = cpt.VerifyReq(this.Ctx.Request)
}

```

template usage

``` {{.Success}} <form action="/" method="post">

{{create_captcha}}
<input name="captcha" type="text">

</form> ```

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Captcha

type Captcha struct {

	// 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 time.Duration

	// cache key prefix
	CachePrefix string
	// contains filtered or unexported fields
}

Captcha struct

func NewCaptcha

func NewCaptcha(urlPrefix string, store Storage) *Captcha

NewCaptcha create a new captcha.Captcha

func NewWithFilter

func NewWithFilter(urlPrefix string, store Storage) *Captcha

NewWithFilter create a new captcha.Captcha and auto AddFilter for serve captacha image and add a template func for output html

func (*Captcha) CreateCaptcha

func (c *Captcha) CreateCaptcha() (string, error)

CreateCaptcha create a new captcha id

func (*Captcha) CreateCaptchaHTML

func (c *Captcha) CreateCaptchaHTML() template.HTML

CreateCaptchaHTML template func for output html

func (*Captcha) Handler

func (c *Captcha) Handler(ctx *context.Context)

Handler beego filter handler for serve captcha image

func (*Captcha) Verify

func (c *Captcha) Verify(id string, challenge string) (success bool)

Verify direct verify id and challenge string

func (*Captcha) VerifyReq

func (c *Captcha) VerifyReq(req *http.Request) bool

VerifyReq verify from a request

type Image

type Image struct {
	*image.Paletted
	// contains filtered or unexported fields
}

Image struct

func NewImage

func NewImage(digits []byte, width, height int) *Image

NewImage returns a new captcha image of the given width and height with the given digits, where each digit must be in range 0-9.

func (*Image) WriteTo

func (m *Image) WriteTo(w io.Writer) (int64, error)

WriteTo writes captcha image in PNG format into the given writer.

type Storage

type Storage interface {
	// Get a cached value by key.
	Get(ctx context2.Context, key string) (interface{}, error)
	// Set a cached value with key and expire time.
	Put(ctx context2.Context, key string, val interface{}, timeout time.Duration) error
	// Delete cached value by key.
	Delete(ctx context2.Context, key string) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL