Heim >Backend-Entwicklung >Golang >Wie implementiert man routenspezifische Middleware in Negroni?
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!