Rumah pembangunan bahagian belakang Golang Gunakan rangka kerja Gin untuk melaksanakan penjanaan kod pengesahan dan fungsi pengesahan

Gunakan rangka kerja Gin untuk melaksanakan penjanaan kod pengesahan dan fungsi pengesahan

Jun 22, 2023 pm 12:01 PM
ginframework Penjanaan kod pengesahan Fungsi pengesahan

Dengan perkembangan Internet, kod pengesahan semakin menjadi ukuran pengesahan keselamatan yang biasa untuk tapak web dan aplikasi. Kod pengesahan ialah teknologi interaksi manusia-komputer berdasarkan imej, bunyi, teks, dsb., dengan tujuan untuk mencegah serangan berniat jahat dan penyalahgunaan oleh robot.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Gin bagi bahasa Go untuk melaksanakan fungsi penjanaan dan pengesahan kod pengesahan. Gin ialah rangka kerja web ringan yang boleh membina aplikasi API dan WEB yang RESTful dengan cepat.

  1. Pasang rangka kerja Gin

Sebelum kita mula, kita perlu memasang rangka kerja Gin. Anda boleh menggunakan alat baris arahan Go untuk memasang:

go get -u github.com/gin-gonic/gin
Salin selepas log masuk
  1. Laksanakan fungsi penjanaan kod pengesahan

Untuk menjana imej kod pengesahan, kita perlu menggunakan perpustakaan pihak ketiga github.com/mojocn /base64Captcha. Pustaka menyediakan berbilang jenis kod pengesahan dan menyokong parameter tersuai. Berikut ialah contoh kod untuk menjana kod pengesahan imej:

package main

import (
    "fmt"
    "time"

    "github.com/gin-gonic/gin"
    "github.com/mojocn/base64Captcha"
)

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

    // 生成验证码图片
    r.GET("/captcha", func(c *gin.Context) {
        // 配置
        driver := base64Captcha.NewDriverDigit(80, 240, 4, 0.5, 80)
        store := base64Captcha.DefaultMemStore
        captcha := base64Captcha.NewCaptcha(driver, store)

        // 生成验证码
        id, b64s, err := captcha.Generate()
        if err != nil {
            c.JSON(500, gin.H{"error": err.Error()})
            return
        }

        // 返回验证码图片
        c.JSON(200, gin.H{
            "id":      id,
            "image":   b64s,
            "expires": time.Now().Add(time.Minute * 5).Unix(),
        })
    })

    r.Run(":8080")
}
Salin selepas log masuk

Dalam contoh ini, kami menggunakan storan Memeory lalai untuk menyimpan maklumat kod pengesahan (storan lain seperti Redis juga boleh digunakan). Pemacu CAPTCHA berasaskan nombor mencipta CAPTCHA menggunakan lebar 80 piksel, ketinggian 240 piksel, panjang empat aksara dan intensiti hingar 0.5. Kaedah Jana akan mengembalikan ID kod pengesahan yang dijana, imej kod pengesahan dan maklumat ralat. Di sini, kami mengembalikan imej kod pengesahan kepada klien dalam bentuk yang dikodkan base64, dan menentukan masa tamat tempoh dalam respons.

  1. Laksanakan fungsi pengesahan kod pengesahan

Apabila pelanggan menyerahkan kod pengesahan, ia perlu disahkan sama ada input pengguna sepadan dengan kod pengesahan yang dijana. Masih menggunakan fungsi Sahkan yang disediakan oleh perpustakaan github.com/mojocn/base64Captcha untuk mengesahkan kod pengesahan. Berikut ialah contoh kod untuk mengesahkan captcha imej:

package main

import (
    "fmt"

    "github.com/gin-gonic/gin"
    "github.com/mojocn/base64Captcha"
)

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

    // 验证验证码
    r.POST("/verify", func(c *gin.Context) {
        var form struct {
            ID   string `form:"id" binding:"required"`
            Code string `form:"code" binding:"required"`
        }
        if err := c.ShouldBind(&form); err != nil {
            c.JSON(400, gin.H{"error": err.Error()})
            return
        }

        // 验证验证码
        if base64Captcha.VerifyCaptcha(form.ID, form.Code) {
            c.JSON(200, gin.H{"success": true})
        } else {
            c.JSON(401, gin.H{"error": "验证码错误"})
        }
    })

    r.Run(":8080")
}
Salin selepas log masuk

Dalam contoh ini, kami mentakrifkan struktur untuk menyimpan ID captcha dan nilai captcha yang diserahkan daripada klien. Gunakan fungsi ShouldBind untuk mengikat badan permintaan kepada struktur. Jika pengikatan gagal, ralat 400 dikembalikan. Semasa mengesahkan kod pengesahan, anda boleh menggunakan fungsi VerifyCaptcha untuk mengesahkan sama ada nilai kod pengesahan yang diserahkan oleh pelanggan adalah betul. Jika pengesahan berjaya, jawapan 200 dikembalikan jika tidak, ralat 401 dikembalikan dan sebab ralat kod pengesahan digesa.

  1. Kod lengkap

Menggabungkan kod sampel di atas untuk menjana kod pengesahan dan mengesahkan kod pengesahan, kami boleh mendapatkan kod lengkap, seperti yang ditunjukkan di bawah:

package main

import (
    "fmt"
    "time"

    "github.com/gin-gonic/gin"
    "github.com/mojocn/base64Captcha"
)

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

    // 生成验证码图片
    r.GET("/captcha", func(c *gin.Context) {
        // 配置
        driver := base64Captcha.NewDriverDigit(80, 240, 4, 0.5, 80)
        store := base64Captcha.DefaultMemStore
        captcha := base64Captcha.NewCaptcha(driver, store)

        // 生成验证码
        id, b64s, err := captcha.Generate()
        if err != nil {
            c.JSON(500, gin.H{"error": err.Error()})
            return
        }

        // 返回验证码图片
        c.JSON(200, gin.H{
            "id":      id,
            "image":   b64s,
            "expires": time.Now().Add(time.Minute * 5).Unix(),
        })
    })

    // 验证验证码
    r.POST("/verify", func(c *gin.Context) {
        var form struct {
            ID   string `form:"id" binding:"required"`
            Code string `form:"code" binding:"required"`
        }
        if err := c.ShouldBind(&form); err != nil {
            c.JSON(400, gin.H{"error": err.Error()})
            return
        }

        // 验证验证码
        if base64Captcha.VerifyCaptcha(form.ID, form.Code) {
            c.JSON(200, gin.H{"success": true})
        } else {
            c.JSON(401, gin.H{"error": "验证码错误"})
        }
    })

    r.Run(":8080")
}
Salin selepas log masuk
  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan rangka kerja Gin dan perpustakaan github.com/mojocn/base64Captcha untuk melaksanakan fungsi penjanaan dan pengesahan kod pengesahan. Teknologi kod pengesahan ialah kaedah pengesahan keselamatan yang digunakan secara meluas, yang boleh menghalang serangan robot dan penyalahgunaan berniat jahat dengan berkesan. Dalam amalan, jenis kod pengesahan lain dan kaedah penyimpanan juga boleh dipilih mengikut keperluan sebenar, dan digabungkan dengan langkah keselamatan lain untuk meningkatkan keselamatan dan kebolehpercayaan aplikasi.

Atas ialah kandungan terperinci Gunakan rangka kerja Gin untuk melaksanakan penjanaan kod pengesahan dan fungsi pengesahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON Gunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON Jun 22, 2023 pm 03:14 PM

Dalam bidang pembangunan web, XML dan JSON, salah satu format data, digunakan secara meluas, dan rangka kerja Gin ialah rangka kerja web bahasa Go ringan yang ringkas, mudah digunakan dan mempunyai prestasi yang cekap. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan fungsi penghuraian data XML dan JSON. Gambaran Keseluruhan Rangka Kerja Gin Rangka kerja Gin ialah rangka kerja web berdasarkan bahasa Go, yang boleh digunakan untuk membina aplikasi web yang cekap dan berskala. Rangka kerja Gin direka bentuk untuk ringkas dan mudah digunakan Ia menyediakan pelbagai perisian tengah dan pemalam untuk membuat pembangunan

Gunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen Gunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen Jun 23, 2023 am 11:40 AM

Dengan pembangunan aplikasi Internet yang berterusan, penggunaan antara muka API menjadi semakin popular. Semasa proses pembangunan, untuk memudahkan penggunaan dan pengurusan antara muka, penulisan dan penyelenggaraan dokumen API telah menjadi semakin penting. Cara tradisional menulis dokumen memerlukan penyelenggaraan manual, yang tidak cekap dan mudah ralat. Untuk menyelesaikan masalah ini, banyak pasukan telah mula menggunakan penjanaan automatik dokumen API untuk meningkatkan kecekapan pembangunan dan kualiti kod. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan penjanaan automatik dokumen API dan fungsi pusat dokumen. Gin adalah satu

Gunakan rangka kerja Gin untuk melaksanakan gerbang API dan fungsi pengesahan dan kebenaran Gunakan rangka kerja Gin untuk melaksanakan gerbang API dan fungsi pengesahan dan kebenaran Jun 22, 2023 am 08:57 AM

Dalam seni bina Internet moden, gerbang API telah menjadi komponen penting dan digunakan secara meluas dalam senario perusahaan dan pengkomputeran awan. Fungsi utama gerbang API adalah untuk mengurus dan mengedarkan antara muka API berbilang sistem mikro perkhidmatan secara seragam, menyediakan kawalan akses dan perlindungan keselamatan, dan juga boleh melaksanakan pengurusan, pemantauan dan pengelogan dokumen API. Untuk memastikan keselamatan dan kebolehskalaan get laluan API dengan lebih baik, beberapa mekanisme kawalan akses dan pengesahan dan kebenaran juga telah ditambahkan pada get laluan API. Mekanisme sedemikian boleh memastikan pengguna dan perkhidmatan

Penjelasan terperinci tentang proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin Penjelasan terperinci tentang proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin Jun 23, 2023 am 11:43 AM

Dengan perkembangan pesat aplikasi web, semakin banyak perusahaan cenderung menggunakan bahasa Golang untuk pembangunan. Dalam pembangunan Golang, menggunakan rangka kerja Gin adalah pilihan yang sangat popular. Rangka kerja Gin ialah rangka kerja web berprestasi tinggi yang menggunakan fasthttp sebagai enjin HTTP dan mempunyai reka bentuk API yang ringan dan elegan. Dalam artikel ini, kami akan menyelidiki aplikasi proksi terbalik dan pemajuan permintaan dalam rangka kerja Gin. Konsep proksi terbalik Konsep proksi terbalik adalah menggunakan pelayan proksi untuk membuat klien

Penjelasan terperinci mengenai pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin Penjelasan terperinci mengenai pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin Jun 22, 2023 am 10:06 AM

Rangka kerja Gin ialah rangka kerja web ringan yang dicirikan oleh kelajuan dan fleksibiliti. Untuk aplikasi yang perlu menyokong berbilang bahasa, rangka kerja Gin boleh melaksanakan pemprosesan pengantarabangsaan dan sokongan berbilang bahasa dengan mudah. Artikel ini akan menghuraikan pemprosesan pengantarabangsaan dan sokongan pelbagai bahasa bagi rangka kerja Gin. Pengantarabangsaan Semasa proses pembangunan, untuk mengambil kira pengguna bahasa yang berbeza, adalah perlu untuk mengantarabangsakan aplikasi. Ringkasnya, pemprosesan pengantarabangsaan bermaksud mengubah suai dan menyesuaikan fail sumber, kod, teks, dsb.

Gunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera Gunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera Jun 22, 2023 pm 06:22 PM

Gin ialah rangka kerja Web ringan yang menggunakan keupayaan pemprosesan penghalaan coroutine dan berkelajuan tinggi bagi bahasa Go untuk membangunkan aplikasi Web berprestasi tinggi dengan pantas. Dalam artikel ini, kami akan meneroka cara menggunakan rangka kerja Gin untuk melaksanakan pemantauan masa nyata dan fungsi penggera. Pemantauan dan membimbangkan adalah bahagian penting dalam pembangunan perisian moden. Dalam sistem yang besar, mungkin terdapat beribu-ribu proses, beratus-ratus pelayan, dan berjuta-juta pengguna. Jumlah data yang dijana oleh sistem ini selalunya mengejutkan, jadi terdapat keperluan untuk sistem yang boleh memproses data ini dengan cepat dan memberikan amaran tepat pada masanya.

Penjelasan terperinci tentang prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin Penjelasan terperinci tentang prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin Jun 22, 2023 pm 06:51 PM

Rangka kerja Gin ialah rangka kerja pembangunan web yang ringan berdasarkan bahasa Go dan menyediakan ciri yang sangat baik seperti fungsi penghalaan yang berkuasa, sokongan perisian tengah dan kebolehskalaan. Walau bagaimanapun, keselamatan adalah faktor penting untuk mana-mana aplikasi web. Dalam artikel ini, kami akan membincangkan prestasi keselamatan dan konfigurasi keselamatan rangka kerja Gin untuk membantu pengguna memastikan keselamatan aplikasi web mereka. 1. Prestasi keselamatan rangka kerja Gin 1.1 Pencegahan serangan XSS Serangan skrip silang tapak (XSS) ialah Web yang paling biasa

Gunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan fungsi sokongan berbilang bahasa Gunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan fungsi sokongan berbilang bahasa Jun 23, 2023 am 11:07 AM

Dengan perkembangan globalisasi dan populariti Internet, semakin banyak laman web dan aplikasi telah mula berusaha untuk mencapai pengantarabangsaan dan fungsi sokongan berbilang bahasa untuk memenuhi keperluan kumpulan orang yang berbeza. Untuk merealisasikan fungsi ini, pembangun perlu menggunakan beberapa teknologi dan rangka kerja termaju. Dalam artikel ini, kami akan memperkenalkan cara menggunakan rangka kerja Gin untuk melaksanakan pengantarabangsaan dan keupayaan sokongan berbilang bahasa. Rangka kerja Gin ialah rangka kerja web ringan yang ditulis dalam bahasa Go. Ia cekap, mudah digunakan dan fleksibel, dan telah menjadi rangka kerja pilihan bagi banyak pembangun. selain itu,

See all articles