Package captcha is a middleware that provides captcha service for Flamego.
go get github.com/flamego/captcha
<!-- templates/home.tmpl --> <form method="POST"> {{.CaptchaHTML}} <br> <input name="captcha"> <button>Submit</button> </form>
package main import ( "net/http" "github.com/flamego/captcha" "github.com/flamego/flamego" "github.com/flamego/session" "github.com/flamego/template" ) func main() { f := flamego.Classic() f.Use(session.Sessioner()) f.Use(captcha.Captchaer()) f.Use(template.Templater()) f.Get("/", func(t template.Template, data template.Data, captcha captcha.Captcha) { data["CaptchaHTML"] = captcha.HTML() t.HTML(http.StatusOK, "home") }) f.Post("/", func(c flamego.Context, captcha captcha.Captcha) { if !captcha.ValidText(c.Request().FormValue("captcha")) { c.ResponseWriter().WriteHeader(http.StatusBadRequest) _, _ = c.ResponseWriter().Write([]byte(http.StatusText(http.StatusBadRequest))) } else { c.ResponseWriter().WriteHeader(http.StatusOK) _, _ = c.ResponseWriter().Write([]byte(http.StatusText(http.StatusOK))) } }) f.Run() }
- Read documentation and examples.
- Please file an issue or start a discussion on the flamego/flamego repository.
This project is under the MIT License. See the LICENSE file for the full license text.