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

Implémentation de l'authentification de base HTTP dans Gin

Guanhui
Libérer: 2020-06-15 18:04:46
avant
3530 Les gens l'ont consulté

Implémentation de l'authentification de base HTTP dans Gin

J'ai étudié le Go, en particulier le gin. J'ai besoin d'une authentification rapide et sale pour mon projet animalier.

Normalement, je ne recommanderais pas d'utiliser HTTP / basic auth pour sécuriser les ressources, mais pour ce projet, je n'ai pas de base de données, je fournis juste quelques fichiers de démarque ici et là. J'utiliserai donc ici l'authentification HTTP/basique pour l'authentification.

gin est l'un de mes frameworks Web préférés car il contient de nombreux middlewares vraiment sympas, c'est un peu comme le framework express pour node.js ou hapijs.

Installer le framework Gin et imprimer Hello World

Si vous créez un projet go/src dans le répertoire gin-http-auth, ajoutez le contenu suivant au fichier main.go du projet :

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "Hello World!",
        })
    })
    r.Run() //监听 0.0.0.0:8080 
}
Copier après la connexion

Ensuite, exécutez la commande go get sur votre terminal et votre projet commencera à s'exécuter ! Vous devez maintenant démarrer la nouvelle API JSON en exécutant la commande suivante :

go run main.go
Copier après la connexion

Vous pouvez saisir localhost:8080 dans votre navigateur et vous devriez voir "message : Hello World!"

Remarque : Fournir une API est probablement l'un des cas d'utilisation les plus importants de gin, mais vous pouvez également restituer directement une série de modèles.

Utilisez le framework Gin pour implémenter la protection des routes


Supposons que vous disposiez maintenant d'une méthode secrète et que vous ne vouliez pas que tout le monde y accède via l'URL. Il s'agit d'une sauce barbecue spéciale. recette Ou une lettre d'amour avec quelques détails cachés !

Nous devons configurer quelques exemples de comptes d'utilisateurs et créer un itinéraire secret, bien sûr, nous pouvons également configurer un itinéraire par défaut /.

Jetons un coup d'œil à cet exemple minimum réalisable :

package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "message": "Hello World!",
        })
    })

    authorized := r.Group("/", gin.BasicAuth(gin.Accounts{
        "user1": "love",
        "user2": "god",
        "user3": "sex",
    }))

    authorized.GET("/secret", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{
            "secret": "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel.",
        })
    })

    r.Run() // 监听服务在 0.0.0.0:8080
}
Copier après la connexion
  1. Dans import, un autre net/http package est importé, utilisé pour formater le code d'état de la réponse http.
  2. Ajout de certains utilisateurs au groupe d'accès autorisé.
  3. authorized.GET Permet uniquement à l'utilisateur de saisir la bonne combinaison. Il fonctionne comme un routeur normal, mais il nécessite une authentification

Lorsque vous modifiez le contenu du fichier, appuyez sur "CTRL + C" pour exécuter rapidement une instance du framework Gin et redémarrez-la.

Lorsque vous visitez localhost:8080/secret dans votre navigateur, vous devriez voir une fenêtre vous invitant à saisir votre nom d'utilisateur et votre mot de passe.

Si vous avez saisi correctement votre compte et votre mot de passe, vous verrez le résultat suivant :

secret    "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel."
Copier après la connexion

C'est tout ! Vous avez créé un itinéraire dans votre projet Web Go qui nécessite une authentification de base http !

Si vous voulez des exemples plus détaillés, consultez le fichier README.md de gin sur Github car il contient plusieurs excellents exemples !

Tutoriel recommandé : "Go Tutorial"

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!

Étiquettes associées:
source:learnku.com
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
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!