Maison > développement back-end > Golang > le corps du texte

Comment implémenter l'authentification spécifique à une route dans Negroni avec Httprouter ?

Susan Sarandon
Libérer: 2024-10-24 08:39:42
original
325 Les gens l'ont consulté

How to Implement Route-Specific Authentication in Negroni with Httprouter?

Authentification spécifique à un itinéraire dans Negroni avec Httprouter

Lors de la mise en œuvre de l'authentification des utilisateurs dans une application Web, il est souvent nécessaire d'exempter certains itinéraires de l'obligation d'autorisation. Cet article explique comment réaliser une authentification spécifique à une route à l'aide de Negroni avec Httprouter.

Énoncé du problème

Un serveur Web utilise Httprouter et Negroni, l'authentification utilisateur étant gérée par OAuth. Le jeton est stocké dans une session cryptée et un middleware est utilisé pour vérifier l'existence du jeton. Cependant, certaines routes, comme la page de connexion, devraient contourner ce middleware d'authentification. Le défi réside dans l'exclusion de routes spécifiques du middleware sans compromettre l'évolutivité.

Solution

Pour créer un middleware spécifique à une route, la clé est de créer des instances Negroni distinctes pour chaque itinéraire. Cela permet un contrôle granulaire sur les middlewares qui s'appliquent à chaque point de terminaison.

Par exemple, considérons l'extrait de code suivant :

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")
Copier après la connexion

Dans cet exemple, /login utilise une instance Negroni distincte sans le middleware d'authentification, tandis que / applique à la fois les sessions et les middlewares d'authentification. En utilisant plusieurs instances Negroni, une authentification spécifique à un itinéraire peut être réalisée de manière efficace et évolutive.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!