Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Middlewares Khusus Laluan dengan Negroni?

Bagaimana untuk Melaksanakan Middlewares Khusus Laluan dengan Negroni?

DDD
DDDasal
2024-10-24 08:33:30419semak imbas

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>

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>

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!

Kenyataan:
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