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>
Mata Utama
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!