https://pkg.go.dev/github.com/dchest/captcha#section-readme
package mainimport ("fmt""github.com/dchest/captcha""github.com/gin-gonic/gin""github.com/gorilla/sessions")var store = sessions.NewCookieStore([]byte("session"))func main() {r := gin.Default()r.GET("/cookie", func(this *gin.Context) {this.SetCookie("name", "zhangsan", 60*60*24, "/", "", false, true)this.JSON(200, gin.H{"cookie": true})})r.GET("/session", func(this *gin.Context) {session, _ := store.Get(this.Request, "session-name")session.Values["captcha"] = "9safji3w9jsal"session.Save(this.Request, this.Writer)this.JSON(200, gin.H{"session": true})})r.GET("/captcha", GetCaptcha)r.GET("/captcha/verify/:value", CaptchaVerify)r.Run(":8090")}func GetCaptcha(this *gin.Context) {l := 4w, h := 214, 72captchaId := captcha.NewLen(l)session, _ := store.Get(this.Request, "session-name")session.Values["captcha"] = captchaIdsession.Save(this.Request, this.Writer)captcha.WriteImage(this.Writer, captchaId, w, h)}func CaptchaVerify(this *gin.Context) {session, _ := store.Get(this.Request, "session-name")captchaId := session.Values["captcha"]fmt.Println(captchaId)if captcha.VerifyString(captchaId.(string), this.Param("value")) {session.Values["captcha"] = ""this.JSON(200, gin.H{"value": this.Param("value")})}else {this.JSON(201, gin.H{"value": false})}}
