Rumah > pembangunan bahagian belakang > Golang > pengesahan pelaksanaan golang

pengesahan pelaksanaan golang

WBOY
Lepaskan: 2023-05-21 15:49:08
asal
746 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang cekap yang telah menarik lebih banyak perhatian dan aplikasi pembangun. Dalam proses pembangunan aplikasi, pengesahan adalah pautan yang sangat penting. Di Golang, melaksanakan pengesahan boleh membantu kami mengesahkan sama ada data yang dimasukkan oleh pengguna adalah sah dan mencapai tujuan untuk melindungi keselamatan data aplikasi. Artikel ini akan meneroka cara melaksanakan pengesahan di Golang.

1. Mengapa pengesahan diperlukan

Pertama sekali, kami perlu menjelaskan tujuan dan tujuan operasi pengesahan. Dalam pembangunan aplikasi web, data input pengguna adalah titik yang sangat kritikal. Input pengguna mungkin mengandungi data haram atau berniat jahat dan oleh itu perlu disahkan. Pengesahan boleh memastikan kesahihan data input pengguna dan mengelakkan pelbagai risiko dengan berkesan seperti serangan, gangguan dan pemalsuan oleh penyerang. Apabila aplikasi mempunyai input data, operasi pengesahan harus dilakukan di latar belakang untuk mencapai perlindungan keselamatan data.

2. Jenis pengesahan asas

  1. Sahkan sama ada input kosong

Ini ialah pautan paling asas dalam operasi pengesahan. Di Golang, kaedah len() biasanya digunakan untuk menentukan sama ada data input kosong. Contohnya:

if len(input) == 0 {
    // 输入为空,需要进行处理
}
Salin selepas log masuk
  1. Sahkan sama ada input ialah nombor

Sahkan sama ada input ialah nombor ialah operasi pengesahan biasa Di Golang, anda boleh menggunakan strconv Kaedah .Atoi() untuk menukar aksara Tukar rentetan kepada nombor dan tentukan sama ada input ialah nombor undang-undang dengan menilai sama ada hasil yang ditukar ialah ralat sifar. Contohnya:

if _, err := strconv.Atoi(input); err != nil {
    // 输入不为数字,需要进行处理
}
Salin selepas log masuk
  1. Sahkan bahawa input ialah alamat e-mel

Dalam aplikasi web, sangat biasa untuk mengesahkan alamat e-mel. Ungkapan biasa boleh digunakan untuk pengesahan di Golang. Contohnya:

func validateEmail(email string) bool {
    matched, _ := regexp.MatchString(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$`, email)
    return matched
}

if !validateEmail(input) {
    // 输入的电子邮件地址不合法,需要进行处理
}
Salin selepas log masuk
  1. Sahkan sama ada input ialah alamat URL

Ungkapan biasa juga boleh digunakan untuk pengesahan di Golang. Contohnya:

func validateURL(input string) bool {
    matched, _ := regexp.MatchString(`^((https|http|ftp|rtsp|mms)?://)[^s]+`, input)
    return matched
}

if !validateURL(input) {
    // 输入的URL地址不合法,需要进行处理
}
Salin selepas log masuk

3. Peraturan pengesahan tersuai

Selain jenis pengesahan asas di atas, dalam pembangunan aplikasi sebenar, peraturan pengesahan tersuai perlu disesuaikan mengikut keperluan yang berbeza. Di Golang, anda boleh mencipta struktur untuk mewakili objek data yang berbeza, menentukan peraturan pengesahan untuk setiap objek, dan kemudian memanggil kaedah ini untuk melaksanakan operasi pengesahan.

Sebagai contoh, berikut ialah contoh struktur tersuai dan kaedah pengesahan:

type User struct {
    Name     string `validate:"min=2,max=10"`
    Password string `validate:"regexp=^[a-zA-Z]\w{5,17}$"`
}

func (u *User) Validate() error {
    validate := validator.New()
    return validate.Struct(u)
}

var user = &User{"", "12345"}

if err := user.Validate(); err != nil {
    fmt.Println(err)
}
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan struktur Pengguna, yang mentakrifkan dua medan Nama dan Kata Laluan. Dengan mentakrifkan teg "sahkan" di dalam struktur, kami boleh menyesuaikan peraturan pengesahan. Dalam kaedah Validate(), kami mencipta objek validator dan mengesahkan objek dengan memanggil kaedah Struct()nya. Jika pengesahan gagal, mesej ralat tidak kosong akan dikembalikan.

Melalui contoh di atas, kita dapat melihat bahawa operasi pengesahan Golang adalah sangat fleksibel, dan pelbagai peraturan pengesahan boleh dilaksanakan secara fleksibel melalui struktur tersuai.

4. Pustaka pengesahan pihak ketiga

Dalam pembangunan aplikasi sebenar, menggunakan perpustakaan pengesahan pihak ketiga boleh memudahkan beban kerja operasi pengesahan. Terdapat banyak perpustakaan pengesahan pihak ketiga untuk dipilih di Golang Perpustakaan yang lebih terkenal termasuk pengesahan, pengesah dan taman permainan/pengesah.

validate ialah perpustakaan pengesahan dalam bahasa Golang Ia mempunyai fungsi yang ringkas dan mudah digunakan Ia melengkapkan operasi pengesahan dengan menyokong penghantaran tag struktur.

pengesah ialah perpustakaan pengesahan yang sesuai untuk bahasa Golang, yang boleh digunakan untuk mengesahkan berbilang jenis data, termasuk struktur, jenis data tradisional dan kepingan. Selain itu, ia menyediakan kebolehlanjutan untuk menyokong pelaksanaan peraturan pengesahan tersuai.

go-playground/validator ialah perpustakaan pengesahan berdasarkan validator.v8, yang menyediakan fungsi pengesahan yang lebih berkuasa dan boleh digunakan untuk mengendalikan keperluan pengesahan yang lebih kompleks. Ia mengiktiraf lebih banyak teg, pengesah dan peraturan tersuai serta mendayakan penyetempatan fleksibel dengan sokongan dan penterjemah berbilang bahasa.

5. Kesimpulan

Pengesahan ialah pautan yang sangat penting dalam pembangunan aplikasi web. Di Golang, kami boleh melaksanakan operasi pengesahan melalui pelbagai kaedah seperti jenis pengesahan asas, peraturan pengesahan tersuai dan menggunakan perpustakaan pengesahan pihak ketiga. Disebabkan oleh ciri fungsi Golang dan sokongan perpustakaan standard, proses ini menjadi sangat mudah dan cekap. Dalam pembangunan aplikasi, mengukuhkan operasi pengesahan data input pengguna secara berkesan dapat mencegah berlakunya input data yang buruk, dengan itu memastikan keselamatan data aplikasi.

Atas ialah kandungan terperinci pengesahan pelaksanaan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan