SkillAgentSearch skills...

Captcha

Package captcha is a middleware that provides captcha service for Flamego

Install / Use

/learn @flamego/Captcha
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

captcha

GitHub Workflow Status GoDoc

Package captcha is a middleware that provides captcha service for Flamego.

Installation

go get github.com/flamego/captcha

Getting started

<!-- 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()
}

Getting help

License

This project is under the MIT License. See the LICENSE file for the full license text.

Related Skills

View on GitHub
GitHub Stars15
CategoryDevelopment
Updated3mo ago
Forks2

Languages

Go

Security Score

92/100

Audited on Dec 9, 2025

No findings