Bagaimana untuk Melaksanakan Middlewares Khusus Laluan dengan Negroni?

DDD
Lepaskan: 2024-10-24 08:33:30
asal
330 orang telah melayarinya

How to Implement Route-Specific Middlewares with Negroni?

Perisian Tengah Khusus Laluan dengan Negroni: Menyesuaikan Pengesahan

Dalam aplikasi web menggunakan httprouter dan Negroni, mungkin timbul keperluan untuk menggunakan perisian tengah ke laluan tertentu sambil mengecualikan laluan lain. Contohnya, perisian tengah pengesahan boleh digunakan untuk mengesahkan status log masuk pengguna, tetapi mungkin tidak diperlukan untuk halaman tertentu.

Negroni menawarkan cara serba boleh untuk mengendalikan perisian tengah khusus laluan. Penyelesaiannya melibatkan mencipta kejadian Negroni yang berasingan untuk setiap laluan yang memerlukan perisian tengah yang unik.

Dalam kod contoh yang disediakan, laluan /login tidak sepatutnya memerlukan pengesahan, manakala laluan / sepatutnya. Begini cara untuk mencapainya:

<code class="go">router := httprouter.New()
router.Handler("GET", "/login", negroni.New(negroni.HandlerFunc(loginHandler)))
router.Handler("GET", "/", negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler)))

server := negroni.Classic()
server.UseHandler(router)
server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret"))))
server.Run(":3000")</code>
Salin selepas log masuk

Dengan mencipta kejadian Negroni yang berasingan untuk setiap laluan, pembangun boleh menggunakan rantaian middleware yang berbeza pada bahagian aplikasi yang berbeza. Dalam kes ini, laluan /login hanya akan menggunakan middleware yang disediakan oleh negroni.Classic() dan middleware sesi yang ditambahkan pada pelayan, manakala laluan / juga akan menggunakan middleware yang dicipta dalam authenticator.Get().

Kedua-dua loginHandler dan indexHandler mesti mengikut tandatangan kaedah tertentu:

<code class="go">func(http.ResponseWriter, *http.Request, http.HandlerFunc)</code>
Salin selepas log masuk

Pendekatan ini menyediakan kebolehskalaan apabila aplikasi berkembang dan membolehkan pengurusan mudah keperluan middleware khusus laluan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Middlewares Khusus Laluan dengan Negroni?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!