Middlewares spécifiques à une route avec Negroni : une approche évolutive
Dans le développement Web utilisant Negroni et httprouter, l'obligation d'appliquer des middlewares de manière sélective à divers les itinéraires se posent fréquemment. Pour y parvenir, il est nécessaire de comprendre le concept de middleware spécifique à une route.
Lorsqu'il s'agit de plusieurs routes, appliquer des contrôles d'authentification à des routes spécifiques tout en en excluant d'autres présente un défi. Cela est particulièrement vrai lorsque vous utilisez Negroni, un puissant framework de gestion des requêtes. Dans ce contexte, nous explorerons une approche évolutive pour appliquer des middlewares de manière sélective aux routes.
Implémentation de middlewares spécifiques aux routes
Pour implémenter des middlewares spécifiques aux routes avec Negroni, nous peut tirer parti de la possibilité de créer plusieurs instances Negroni. Dans l'exemple fourni, nous avons un middleware d'authentification dans Authenticator.Get() que nous souhaitons appliquer uniquement à la route "/".
<code class="go">router := httprouter.New()</code>
<code class="go">loginHandler := negroni.New(negroni.HandlerFunc(loginHandler)) indexHandler := negroni.New(authenticator.Get(), negroni.HandlerFunc(indexHandler))</code>
<code class="go">router.Handler("GET", "/login", loginHandler) router.Handler("GET", "/", indexHandler)</code>
<code class="go">server := negroni.Classic() server.UseHandler(router) server.Use(sessions.Sessions("example-web-dev", cookiestore.New([]byte("some secret"))))</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!