非常好用的驗證碼模塊


https://github.com/dchest/captcha
代碼庫文檔齊全,有示例代碼,方便學習,推薦大家使用。

這是一款非常棒的驗證碼模塊,支持自定義存儲方式,支持語音播報,最重要的是使用起來非常簡單。

安裝

go get -u "github.com/dchest/captcha"
go get -u "github.com/astaxie/beego"   #如果您要使用 beego 的話,或者需要運行下面的示例代碼

Captcha 在 beego 中的簡單示例

package main

import (
    "strconv"
    "strings"

    "github.com/astaxie/beego"
    "github.com/dchest/captcha"
)

const HTML_TPL string = `
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Captcha by Golang</title>
</head>

<body>
<form method="post">
    <p><img src="/captcha/{{.CaptchaId}}.png" /></p>
    <p><input name="captcha" placeholder="請輸入驗證碼" type="text" /></p>
    <input name="captcha_id" type="hidden" value="{{.CaptchaId}}" />
    <input type="submit" />
</form>
</body>
</html>`

// Main 控制器
type MainController struct {
    beego.Controller
}

func (this *MainController) Get() {
    captchaId := captcha.NewLen(6) //驗證碼長度為6
    html := strings.Replace(HTML_TPL, "{{.CaptchaId}}", captchaId, -1)
    this.Ctx.WriteString(html)
}

func (this *MainController) Post() {
    id, value := this.GetString("captcha_id"), this.GetString("captcha")
    b := captcha.VerifyString(id, value) //驗證碼校驗
    this.Ctx.WriteString(strconv.FormatBool(b))
}

//設置beego和路由注冊
func init() {
    beego.AutoRender = false //禁止 beego 的模板自動渲染

    beego.Router("/", &MainController{})
    beego.Handler("/captcha/*.png", captcha.Server(240, 80)) //注冊驗證碼服務,驗證碼圖片的寬高為240 x 80
}

func main() {
    beego.Run() //打開瀏覽器並訪問 http://localhost:8080
}

驗證碼示例圖片


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM