mirror of
https://github.com/kataras/iris.git
synced 2025-12-18 18:37:05 +00:00
reorganization of _examples and add some new examples such as iris+groupcache+mysql+docker
Former-commit-id: ed635ee95de7160cde11eaabc0c1dcb0e460a620
This commit is contained in:
40
_examples/auth/recaptcha/main.go
Normal file
40
_examples/auth/recaptcha/main.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/kataras/iris/v12"
|
||||
"github.com/kataras/iris/v12/middleware/recaptcha"
|
||||
)
|
||||
|
||||
// keys should be obtained by https://www.google.com/recaptcha
|
||||
const (
|
||||
recaptchaPublic = ""
|
||||
recaptchaSecret = ""
|
||||
)
|
||||
|
||||
func showRecaptchaForm(ctx iris.Context, path string) {
|
||||
ctx.HTML(recaptcha.GetFormHTML(recaptchaPublic, path))
|
||||
}
|
||||
|
||||
func main() {
|
||||
app := iris.New()
|
||||
|
||||
// On both Get and Post on this example, so you can easly
|
||||
// use a single route to show a form and the main subject if recaptcha's validation result succeed.
|
||||
app.HandleMany("GET POST", "/", func(ctx iris.Context) {
|
||||
if ctx.Method() == iris.MethodGet {
|
||||
showRecaptchaForm(ctx, "/")
|
||||
return
|
||||
}
|
||||
|
||||
result := recaptcha.SiteVerify(ctx, recaptchaSecret)
|
||||
if !result.Success {
|
||||
/* redirect here if u want or do nothing */
|
||||
ctx.HTML("<b> failed please try again </b>")
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Writef("succeed.")
|
||||
})
|
||||
|
||||
app.Listen(":8080")
|
||||
}
|
||||
Reference in New Issue
Block a user