Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melaksanakan Middleware Khusus Laluan di Negroni?

Bagaimana untuk Melaksanakan Middleware Khusus Laluan di Negroni?

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

How to Implement Route-Specific Middleware in Negroni?

Perisian Tengah khusus laluan dengan Negroni

Pengenalan

Melaksanakan mekanisme pengesahan dalam pelayan web adalah penting untuk memastikan data pengguna dan mengawal akses kepada sumber yang dilindungi. Apabila menggunakan pakej httprouter untuk penghalaan dan Negroni untuk pengurusan perisian tengah, anda mungkin menghadapi keperluan untuk mengecualikan laluan tertentu daripada pengesahan. Artikel ini meneroka cara untuk mencapai perisian tengah khusus laluan di Negroni.

Pernyataan Masalah

Memandangkan persediaan pelayan dengan httprouter dan Negroni, objektifnya adalah untuk melaksanakan pengendali pengesahan (authenticator.Get()) dan gunakannya pada semua laluan kecuali satu (seperti "/log masuk").

Penyelesaian

Untuk perisian tengah khusus laluan dengan Negroni , kita perlu mencipta kejadian Negroni yang berasingan untuk setiap laluan. Dalam contoh yang disediakan, kejadian Negroni yang berasingan dicipta untuk "/log masuk" dan "/". Laluan "/login" dikecualikan daripada pengesahan dengan hanya menggunakan loginHandler, manakala laluan "/" menggunakan kedua-dua authenticator.Get() dan indexHandler.

Pelaksanaan

<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

Mata Utama

  • loginHandler dan indexHandler mesti melaksanakan tandatangan func(http.ResponseWriter, *http.Request, http.HandlerFunc).
  • Semua laluan akan mewarisi middleware daripada negroni.Classic() dan middleware sesi ditambahkan pada pelayan.
  • Middleware khusus laluan digunakan dengan menyarangkan tika Negroni dengan tindanan middleware yang berbeza untuk setiap laluan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Middleware Khusus Laluan di 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