Einführung
Die Implementierung von Authentifizierungsmechanismen in Webservern ist entscheidend für die Sicherung von Benutzerdaten und Kontrolle des Zugriffs auf geschützte Ressourcen. Wenn Sie das httprouter-Paket für das Routing und Negroni für die Middleware-Verwaltung verwenden, müssen Sie möglicherweise bestimmte Routen von der Authentifizierung ausschließen. In diesem Artikel wird untersucht, wie man routenspezifische Middleware in Negroni erreicht.
Problemstellung
Bei einem Server-Setup mit httprouter und Negroni besteht das Ziel darin, einen Authentifizierungshandler zu implementieren (authenticator.Get()) und wenden Sie es auf alle Routen außer einer an (z. B. „/login“).
Lösung
Für routenspezifische Middleware mit Negroni müssen wir für jede Route separate Negroni-Instanzen erstellen. Im bereitgestellten Beispiel werden separate Negroni-Instanzen für „/login“ und „/“ erstellt. Die Route „/login“ wird von der Authentifizierung ausgeschlossen, indem nur der loginHandler verwendet wird, während die Route „/“ sowohl Authenticator.Get() als auch den IndexHandler verwendet.
Implementierung
<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>
Wichtige Punkte
Das obige ist der detaillierte Inhalt vonWie implementiert man routenspezifische Middleware in Negroni?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!