Implementierung von HTTP Basic Auth in Gin

Guanhui
Freigeben: 2020-06-15 18:04:46
nach vorne
3566 Leute haben es durchsucht

Implementierung von HTTP Basic Auth in Gin

Ich habe Go studiert, insbesondere Gin. Ich benötige eine schnelle und schmutzige Authentifizierung für mein Lieblingsprojekt.

Normalerweise würde ich nicht empfehlen, HTTP/Basisauthentifizierung zum Sichern von Ressourcen zu verwenden, aber für dieses Projekt habe ich keine Datenbank, ich stelle nur hier und da ein paar Markdown-Dateien zur Verfügung. Daher werde ich hier HTTP/Basic Auth zur Authentifizierung verwenden.

Gin ist eines meiner Lieblings-Web-Frameworks, weil es viele wirklich coole Middleware hat, es ist so etwas wie das Express-Framework für node.js oder hapijs.

Gin-Framework installieren und Hello World drucken

Wenn Sie ein go/src-Projekt im gin-http-auth-Verzeichnis erstellen, fügen Sie den folgenden Inhalt zur main.go-Datei des Projekts hinzu:

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 
}
Nach dem Login kopieren

Führen Sie dann den Befehl go get auf Ihrem Terminal aus und Ihr Projekt wird gestartet! Sie müssen jetzt die neue JSON-API starten, indem Sie den folgenden Befehl ausführen:

go run main.go
Nach dem Login kopieren

Sie können localhost:8080 in Ihren Browser eingeben und Sie sollten „Nachricht: Hello World!“ sehen

Hinweis: Die Bereitstellung einer API ist wahrscheinlich einer der größeren Anwendungsfälle für Gin, aber Sie können eine Reihe von Vorlagen auch direkt rendern.

Verwenden Sie das Gin-Framework, um den Routenschutz zu implementieren


Angenommen, Sie haben jetzt eine geheime Methode und möchten nicht, dass jeder über die URL darauf zugreift. Dies ist eine spezielle Barbecue-Sauce Rezept Oder ein Liebesbrief mit einigen versteckten Details!

Wir müssen einige Beispielbenutzerkonten einrichten und eine geheime Route erstellen. Natürlich können wir auch eine Standardroute einrichten /.

Sehen wir uns dieses minimal machbare Beispiel an:

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
}
Nach dem Login kopieren
  1. In import wird ein weiteres net/http-Paket importiert, das zum Formatieren des Statuscodes der http-Antwort verwendet wird.
  2. Einige Benutzer wurden zur Gruppe mit autorisiertem Zugriff hinzugefügt.
  3. authorized.GET Ermöglicht dem Benutzer nur die Eingabe der richtigen Kombination. Es funktioniert wie ein normaler Router, erfordert jedoch eine Authentifizierung

Wenn Sie den Dateiinhalt ändern, drücken Sie „STRG + C“, um schnell eine Instanz des Gin-Frameworks auszuführen und neu zu starten.

Wenn Sie „localhost:8080/secret“ in Ihrem Browser aufrufen, sollte ein Fenster angezeigt werden, in dem Sie zur Eingabe Ihres Benutzernamens und Passworts aufgefordert werden.

Wenn Sie Ihr Konto und Passwort korrekt eingegeben haben, sehen Sie die folgende Ausgabe:

secret    "The secret ingredient to the BBQ sauce is stiring it in an old whiskey barrel."
Nach dem Login kopieren

Das war's! Sie haben in Ihrem Go-Webprojekt eine Route erstellt, die eine http-Basisauthentifizierung erfordert!

Wenn Sie detailliertere Beispiele wünschen, schauen Sie sich Gins README.md auf Github an, da dort mehrere großartige Beispiele enthalten sind!

Empfohlenes Tutorial: „Go Tutorial

Das obige ist der detaillierte Inhalt vonImplementierung von HTTP Basic Auth in Gin. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage