"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/middleware/recaptcha"
// keys should be obtained by https://www.google.com/recaptcha/admin
recaptchaPublic = "6Lf3WywUAAAAAKNfAm5DP2J5ahqedtZdHTYaKkJ6"
recaptchaSecret = "6Lf3WywUAAAAAJpArb8nW_LCL_PuPuokmEABFfgw"
r := recaptcha.New(recaptchaSecret)
app.Get("/comment", showRecaptchaForm)
// pass the middleware before the main handler
// or use the `recaptcha.SiteVerify`.
app.Post("/comment", r, postComment)
// You can use view templates instead.
var htmlForm = `<form action="/comment" method="POST">
<script src="https://www.google.com/recaptcha/api.js"></script>
<div class="g-recaptcha" data-sitekey="%s"></div>
<input type="submit" name="button" value="Verify">
func showRecaptchaForm(ctx iris.Context) {
contents := fmt.Sprintf(htmlForm, recaptchaPublic)
// This handler is protected by the recaptcha middleware.
func postComment(ctx iris.Context) {
ctx.JSON(iris.Map{"success": true})