Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie Beego und Captcha, um die Bestätigungscode-Funktion zu implementieren

Verwenden Sie Beego und Captcha, um die Bestätigungscode-Funktion zu implementieren

王林
王林Original
2023-06-22 22:54:091049Durchsuche

Mit der Entwicklung und Popularität des Internets wurden immer mehr Websites und Anwendungen entwickelt, von denen viele Verifizierungscodes erfordern, um die Benutzergültigkeit und -sicherheit zu gewährleisten. In diesem Artikel wird erläutert, wie Sie das Beego-Framework und die Captcha-Bibliothek verwenden, um die Bestätigungscode-Funktion zu implementieren. Unter diesen ist Beego ein Webanwendungs-Framework, das auf der Go-Sprache basiert, und Captcha ist eine Open-Source-Verifizierungscodebibliothek in der Go-Sprache.

  1. Vorbereitung für das Beego-Framework

Bevor Sie den Bestätigungscode implementieren, müssen Sie das Beego-Framework installieren und eine neue Go-Anwendung erstellen. Das Beego-Framework kann mit dem folgenden Befehl installiert werden:

go get github.com/astaxie/beego

Erstellen Sie dann eine neue Anwendung und starten Sie den Dienst:

beego new myapp
cd myapp
bee run

Wenn alles gut geht, sollte die Anwendung im Browser zugänglich sein und „Willkommen bei Beego!“ ausgeben.

  1. Installation und Verwendung der Captcha-Bibliothek

Als nächstes müssen Sie die Captcha-Bibliothek installieren. Sie können zur Installation den folgenden Befehl verwenden:

go get github.com/mojocn/base64Captcha

Nach Abschluss der Installation können Sie die Captcha-Bibliothek in die Go-Anwendung importieren und den folgenden Code verwenden, um den Bestätigungscode zu generieren und zu überprüfen:

// 生成验证码
config := captcha.ConfigCharacter{
    Height:             60,
    Width:              240,
    Mode:               captcha.CaptchaModeNumber,
    Complexity:         captcha.CaptchaComplexityNormal,
    CaptchaLen:         4,
    CaptchaTimeout:     1200,
    SubPixel:           false,
    ShowLineOptions:    captcha.OptionShowHollowLine | captcha.OptionShowSineLine,
    Source:             "1234567890",
    BgColor:            "#eeeeee",
}
captchaId, captchaImage := captcha.GenerateCaptcha("", config)

// 验证验证码
result := captcha.VerifyCaptcha(captchaId, userInputCaptcha)

Im obigen Code a Die Konfigurationsdatei config definiert zunächst verschiedene Eigenschaften des Verifizierungscodes, wie Breite, Höhe, Zeichensatz, Überlebenszeit usw. Anschließend wird der Bestätigungscode durch Aufrufen der GenerateCaptcha-Methode generiert und das generierte Bestätigungscodebild und die Bestätigungscode-ID werden zur Anzeige und Speicherung an den Benutzer zurückgegeben. Abschließend wird die VerifyCaptcha-Methode aufgerufen, um zu überprüfen, ob der vom Benutzer eingegebene Bestätigungscode mit der zuvor generierten Bestätigungscode-ID übereinstimmt.

Beachten Sie, dass beim Aufruf von GenerateCaptcha der erste Parameter eine leere Zeichenfolge ist, was bedeutet, dass der diesmal generierte Bestätigungscode keinen Daten zugeordnet werden muss. Wenn Sie es mit anderen Daten verknüpfen müssen, können Sie die Daten im ersten Parameter übergeben, z. B. eine Mobiltelefonnummer oder einen Benutzernamen usw. Beim Aufruf von VerifyCaptcha übergibt der erste Parameter die zuvor generierte Verifizierungscode-ID und der zweite Parameter den vom Benutzer eingegebenen Verifizierungscode.

  1. Implementierung der Bestätigungscode-Funktion in Beego

Mit der Vorbereitung von Beego und Captcha können Sie die Bestätigungscode-Funktion in der Beego-Anwendung implementieren. Generieren Sie zunächst den Bestätigungscode und zeigen Sie das Bestätigungscodebild im Beego-Controller an. Der Code lautet wie folgt:

// 生成验证码
func (c *MainController) GenerateCaptcha() {
    config := captcha.ConfigCharacter{
        Height:         60,
        Width:          240,
        Mode:           captcha.CaptchaModeNumber,
        Complexity:     captcha.CaptchaComplexityNormal,
        CaptchaLen:     4,
        CaptchaTimeout: 1200,
        SubPixel:       false,
        Source:         "1234567890",
        BgColor:        "#eeeeee",
    }
    captchaId, captchaImage := captcha.GenerateCaptcha("", config)

    // 将验证码及其ID存储到session中,并返回图片
    c.SetSession(sessionCaptchaId, captchaId)
    c.Ctx.ResponseWriter.Header().Set("Cache-Control", "no-store, no-cache")
    c.Ctx.ResponseWriter.Header().Set("Content-Type", "image/png")
    captchaImage.WriteTo(c.Ctx.ResponseWriter)
}

// 验证验证码
func (c *MainController) CheckCaptcha() {
    publicKey := c.GetString("public_key")
    inputCaptcha := c.GetString("input_captcha")

    // 从session中获取验证码ID
    captchaId := c.GetSession(sessionCaptchaId)
    if captchaId == nil {
        c.ResponseError(errNoCaptchaFound)
        return
    }

    // 验证输入的验证码
    if !captcha.VerifyCaptcha(captchaId.(string), inputCaptcha) {
        c.ResponseError(errCaptchaNotMatch)
        return
    }

    // 验证码匹配成功,移除验证码ID
    c.DelSession(sessionCaptchaId)

    // TODO: 验证通过,执行其他操作
}

Generieren Sie im obigen Code zunächst den Bestätigungscode in der GenerateCaptcha-Methode und speichern Sie den Bestätigungscode und seine ID in der Sitzung . Geben Sie dann das generierte Bestätigungscode-Bild an den Client zurück. Rufen Sie in der CheckCaptcha-Methode die Bestätigungscode-ID aus der Sitzung ab und verwenden Sie die VerifyCaptcha-Methode, um zu überprüfen, ob der vom Benutzer eingegebene Bestätigungscode korrekt ist. Wenn die Verifizierung erfolgreich ist, wird die Verifizierungscode-ID entfernt und andere Aktionen werden durchgeführt.

Fügen Sie abschließend die folgenden Routing-Regeln zum Routing von Beego hinzu:

beego.Router("/captcha/generate", &controllers.MainController{}, "get:GenerateCaptcha")
beego.Router("/captcha/check", &controllers.MainController{}, "post:CheckCaptcha")

Auf diese Weise ist die Implementierung der Bestätigungscode-Funktion abgeschlossen. Beim Zugriff auf /captcha/generate wird ein neuer Bestätigungscode generiert, seine ID wird in der Sitzung gespeichert und das Bild des Bestätigungscodes wird an den Client zurückgegeben. Beim Zugriff auf /captcha/check wird der vom Benutzer eingegebene Bestätigungscode aus der HTTP-POST-Anfrage abgerufen und überprüft, ob er mit der zuvor generierten Bestätigungscode-ID übereinstimmt. Wenn sie übereinstimmen, wird die Bestätigungscode-ID entfernt und andere Vorgänge werden ausgeführt.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie Beego und Captcha zur Implementierung der Bestätigungscode-Funktion verwenden. Das Beego-Framework bietet gute Unterstützung bei der Webentwicklung und die Captcha-Bibliothek bietet gute Unterstützung bei der Generierung und Verifizierung von Verifizierungscodes. Durch die Kombination beider kann die Verifizierungscodefunktion einfach implementiert werden, um die Sicherheit und Robustheit von Webanwendungen zu verbessern.

Das obige ist der detaillierte Inhalt vonVerwenden Sie Beego und Captcha, um die Bestätigungscode-Funktion zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn