ホームページ バックエンド開発 Golang Gin フレームワークでの検証コードの使用例

Gin フレームワークでの検証コードの使用例

Jun 23, 2023 am 08:10 AM
検証コード ジンフレーム

インターネットの普及に伴い、ログイン、登録、パスワード検索などの操作に認証コードが必要なプロセスになりました。 Ginフレームワークでは、認証コード機能の実装が非常に簡単になりました。

この記事では、サードパーティのライブラリを使用して、Gin フレームワークに検証コード機能を実装する方法を紹介し、読者の参考となるサンプル コードを提供します。

1. 依存ライブラリのインストール

検証コードを使用する前に、サードパーティ ライブラリ goCaptcha をインストールする必要があります。

goCaptcha をインストールするには、go get コマンドを使用できます:

$ go get -u github.com/mojocn/base64Captcha
ログイン後にコピー

2. 検証コードの生成

goCaptcha は、数値検証コード、文字検証を含む 3 つの検証コード タイプを提供します。コードと英数字の確認コード。次に、デジタル検証コードを例として、検証コードを生成する方法を説明します。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    b64 "github.com/mojocn/base64Captcha"
)

func main() {
    // 以下是生成验证码的代码
    driver := b64.NewDriverDigit(80, 240, 6, 0.7, 80)
    captcha := b64.NewCaptcha(driver, b64.DefaultMemStore)
    id, b64s, err := captcha.Generate()
    if err != nil {
        fmt.Println(err.Error())
    }
    fmt.Println(id, b64s)
}
ログイン後にコピー

上記のコードでは、NewDriverDigit 関数を使用して検証コード ジェネレーターを作成します。関数のパラメータは、画像の幅、高さ、検証コードの長さ、ノイズ強度、干渉線の数を順に表します。次に、NewCaptcha 関数を使用して検証コード オブジェクトを作成し、Generate メソッドを呼び出して検証コードを生成します。

3. 確認コードをクライアントに送信する

確認コードを生成した後、それをクライアントに送信する必要があります。 Gin フレームワークでは、ResponseWriter.Write 関数を使用して応答本文を書き込むことができます。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    b64 "github.com/mojocn/base64Captcha"
)

func main() {
    router := gin.Default()

    // 以下是生成验证码的代码
    driver := b64.NewDriverDigit(80, 240, 6, 0.7, 80)
    captcha := b64.NewCaptcha(driver, b64.DefaultMemStore)
    router.GET("/captcha", func(c *gin.Context) {
        id, b64s, err := captcha.Generate()
        if err != nil {
            fmt.Println(err.Error())
            c.String(500, err.Error())
            return
        }
        c.SetCookie("captcha_id", id, 300, "/", "localhost", false, true)
        c.Data(200, "image/png", []byte(b64s))
    })

    router.Run(":8080")
}
ログイン後にコピー

上記のコードでは、/captcha ルートを作成し、SetCookie メソッドを通じて検証コード ID を渡し、生成されたテキスト検証コードを ResponseWriter オブジェクトを通じて応答本文に書き込みました。

4. 検証コードの検証

ユーザーがフォームに検証コードを入力して送信すると、検証コード ID を通じて検証コードを取得し、その正確性を検証する必要があります。 Go では、MemStore オブジェクトを使用して検証コードを保存および取得できます。

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    b64 "github.com/mojocn/base64Captcha"
)

func main() {
    router := gin.Default()

    // 以下是生成验证码的代码
    driver := b64.NewDriverDigit(80, 240, 6, 0.7, 80)
    captcha := b64.NewCaptcha(driver, b64.DefaultMemStore)
    router.GET("/captcha", func(c *gin.Context) {
        id, b64s, err := captcha.Generate()
        if err != nil {
            fmt.Println(err.Error())
            c.String(500, err.Error())
            return
        }
        c.SetCookie("captcha_id", id, 300, "/", "localhost", false, true)
        c.Data(200, "image/png", []byte(b64s))
    })

    // 以下是验证验证码的代码
    router.POST("/login", func(c *gin.Context) {
        captchaId, err := c.Cookie("captcha_id")
        if err != nil {
            fmt.Println(err.Error())
            c.String(400, "未生成验证码")
            return
        }
        captchaVal := c.PostForm("captcha_val")
        if captchaVal == "" {
            c.String(400, "请输入验证码")
            return
        }
        if !captcha.Verify(captchaId, captchaVal) {
            c.String(400, "验证码错误")
            return
        }
        c.String(200, "登录成功")
    })

    router.Run(":8080")
}
ログイン後にコピー

上記のコードでは、/login ルートを作成しました。このルートは、最初に Cookie を通じて検証コード ID を取得し、次に PostForm を通じてユーザーが入力した検証コードを取得し、最後に検証の Verify メソッドを使用します。コードの正確性を検証するためのコード オブジェクト。

5. まとめ

この記事では、goCaptcha を使用して、Gin フレームワークに検証コード機能を実装する方法を紹介します。まず NewDriverDigit 関数を使用して検証コード ジェネレーターを生成し、次に NewCaptcha 関数を使用して検証コード オブジェクトを作成し、Generate メソッドを使用して検証コードを生成します。最後に、ResponseWriter を通じて検証コードがクライアントに送信され、Cookie を通じて検証コード ID が渡され、MemStore オブジェクトを使用して検証コードが格納され、ログイン時に検証コードの正当性が検証されます。

実際の開発では、必要に応じて検証コードのさまざまなパラメータをカスタマイズし、他の機能と組み合わせて、より豊かな機能エクスペリエンスをユーザーに提供できます。

以上がGin フレームワークでの検証コードの使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Chrome ブラウザで認証コードが表示されません。 Mar 13, 2024 pm 08:55 PM

Google Chrome で認証コードの画像が表示されない場合はどうすればよいですか? Google Chrome を使用して Web ページにログインするために確認コードが必要になる場合があります。一部のユーザーは、画像検証コードを使用すると、Google Chrome で画像のコンテンツが適切に表示されないことに気づきます。何をすべきでしょうか? Google Chromeの認証コードが表示されない場合の対処法を以下のエディターでご紹介しますので、皆様のお役に立てれば幸いです!方法の紹介: 1. ソフトウェアに入り、右上隅の「詳細」ボタンをクリックし、下のオプションリストで「設定」を選択してに入ります。 2. 新しいインターフェースに入ったら、左側の「プライバシー設定とセキュリティ」オプションをクリックします。 3. 次に、右側の「Web サイト設定」をクリックします。

Pin フレームワークを使用して API ドキュメントの自動生成とドキュメント センター機能を実装する Pin フレームワークを使用して API ドキュメントの自動生成とドキュメント センター機能を実装する Jun 23, 2023 am 11:40 AM

インターネット アプリケーションの継続的な開発に伴い、API インターフェイスの使用がますます一般的になってきています。開発プロセスでは、インターフェイスの使用と管理を容易にするために、API ドキュメントの作成とメンテナンスがますます重要になっています。従来のドキュメントの作成方法では手動によるメンテナンスが必要であり、非効率的でエラーが発生しやすくなります。これらの問題を解決するために、多くのチームは API ドキュメントの自動生成を使用して、開発効率とコードの品質を向上させ始めました。この記事では、Ginフレームワークを利用してAPIドキュメントの自動生成とドキュメントセンター機能を実装する方法を紹介します。ジンもそのひとつ

携帯電話で確認コードを受信できないのはなぜですか? 携帯電話で確認コードを受信できないのはなぜですか? Aug 17, 2023 pm 02:49 PM

携帯電話で認証コードを受信できない場合は、ネットワークの問題、携帯電話の設定の問題、携帯電話会社の問題、個人設定の問題が原因です。詳細な紹介: 1. ネットワークの問題: 携帯電話が設置されているネットワーク環境が不安定または信号が弱いため、確認コードが時間内に配信されない可能性があります; 2. 携帯電話の設定の問題: テキスト メッセージ携帯電話の音声機能が誤ってオフになったり、認証コード送信番号がブラックリストに追加され、認証コードが正常に受信されなくなったりする場合 3. 携帯電話会社側の問題、携帯電話会社側の故障や故障の可能性があります。メンテナンスにより認証コードの配信が間に合わない場合など

仮想番号は確認コードを受け取ることができますか? 仮想番号は確認コードを受け取ることができますか? Jan 02, 2024 am 10:22 AM

仮想番号は認証コードを受け取ることができ、登録時に入力した携帯電話番号が規定を満たしており、携帯電話番号が正常に接続できる限り、SMS認証コードを受け取ることができます。ただし、仮想携帯電話番号の利用には注意が必要で、Webサイトによっては仮想携帯電話番号の登録に対応していない場合があるため、正規の仮想携帯電話番号サービスプロバイダーを選択する必要があります。

Gin フレームワークにおけるリバース プロキシとリクエスト転送の詳細な説明 Gin フレームワークにおけるリバース プロキシとリクエスト転送の詳細な説明 Jun 23, 2023 am 11:43 AM

Web アプリケーションの急速な開発に伴い、開発に Golang 言語を使用する企業が増えています。 Golang 開発では、Gin フレームワークの使用が非常に一般的な選択肢です。 Gin フレームワークは、HTTP エンジンとして fasthttp を使用し、軽量でエレガントな API 設計を備えた高性能 Web フレームワークです。この記事では、リバース プロキシのアプリケーションと、Gin フレームワークでの転送リクエストについて詳しく説明します。リバース プロキシの概念 リバース プロキシの概念は、プロキシ サーバーを使用してクライアントを作成することです。

Gin フレームワークを使用して国際化および多言語サポート機能を実装する Gin フレームワークを使用して国際化および多言語サポート機能を実装する Jun 23, 2023 am 11:07 AM

グローバル化の進展とインターネットの普及に伴い、さまざまな人々のニーズを満たすために、ますます多くの Web サイトやアプリケーションが国際化や多言語サポート機能の実現に努め始めています。これらの機能を実現するには、開発者はいくつかの高度なテクノロジーとフレームワークを使用する必要があります。この記事では、Gin フレームワークを使用して国際化と多言語サポート機能を実装する方法を紹介します。 Gin フレームワークは、Go 言語で書かれた軽量の Web フレームワークです。効率的で使いやすく、柔軟性が高いため、多くの開発者にとって好ましいフレームワークとなっています。その上、

PHP画像処理事例:画像の認証コード機能の実装方法 PHP画像処理事例:画像の認証コード機能の実装方法 Aug 17, 2023 pm 12:09 PM

PHP画像処理事例:画像の認証コード機能の実装方法 インターネットの急速な発展に伴い、認証コードはWebサイトのセキュリティを守る重要な手段の1つとなっています。認証コードとは、画像認識技術を利用して本人かどうかを判断する認証方法です。この記事では、PHPを使用して画像の認証コード機能を実装する方法とコード例を紹介します。はじめに 認証コードはランダムな文字を含む画像であり、ユーザーは認証に合格するには画像内の文字を入力する必要があります。検証コードを実装する主なプロセスには、ランダムな文字の生成と、文字を画像に描画することが含まれます。

PHP 開発ガイド: 検証コードログインの実装 PHP 開発ガイド: 検証コードログインの実装 Jul 01, 2023 am 09:27 AM

インターネットの発展やスマートフォンの普及に伴い、認証コードによるログイン機能を採用するWebサイトやアプリが増えています。認証コードログインは、セキュリティを向上させ、悪意のある攻撃を防ぐために、正しい認証コードを入力することでユーザーの本人確認を行うログイン方法です。 PHP開発において、簡易認証コードログイン機能の実装は複雑ではなく、以下の手順で完了します。データベース テーブルの作成 まず、検証コード情報を保存するテーブルをデータベースに作成する必要があります。テーブル構造には次のフィールドを含めることができます: id: 自動インクリメント主キー phon

See all articles