Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Benutzeranmeldefunktion mit Golang

So implementieren Sie die Benutzeranmeldefunktion mit Golang

PHPz
PHPzOriginal
2023-04-11 09:12:551718Durchsuche

Golang ist eine effiziente und zuverlässige Programmiersprache, die sich für die Entwicklung umfangreicher Anwendungen auf Unternehmensebene eignet. Im heutigen Internetbereich ist die Anmeldefunktion des Benutzers ein unverzichtbarer Link. Wie implementiert man die Anmeldefunktion des Benutzers mit Golang? In diesem Artikel werden die relevanten Kenntnisse von Golang für die Implementierung der Anmeldung unter folgenden Gesichtspunkten vorgestellt.

1. Verwenden Sie Golang, um die Benutzeranmeldeseite zu entwerfen.

In Golang können wir das Webframework verwenden, um die Benutzeranmeldeseite zu erstellen. Zu den derzeit beliebten Web-Frameworks gehören: Beego, Echo usw. In diesem Artikel wird am Beispiel des Beego-Frameworks gezeigt, wie eine Benutzeranmeldeseite erstellt wird.

Zuerst müssen Sie das Beego-Framework und das entsprechende Beego-Befehlszeilentool installieren. Geben Sie den folgenden Befehl in die Befehlszeilenumgebung ein, um die Installation abzuschließen:

    go get github.com/astaxie/beego
    go get github.com/beego/bee

Nach der Installation von Beego können wir die Befehlszeilentools von Beego verwenden, um ein neues Projekt zu erstellen. Geben Sie in der Befehlszeile den folgenden Befehl ein:

    bee new projectname

wobei „Projektname“ der Name des Projekts ist, das Sie erstellen möchten. Nach dem Erstellen des Projekts müssen wir im Projekt eine neue Anmeldevorlage erstellen. Die Vorlage enthält Eingabefelder für Benutzernamen und Passwort sowie eine Anmeldeschaltfläche. Nach dem Erstellen der Seite müssen wir die Anmeldelogik im Code verarbeiten, z. B. prüfen, ob das Konto und das Kennwort des Benutzers korrekt sind. Wenn dies korrekt ist, wird der Benutzer aufgefordert, sich nicht anzumelden .

2. Verwenden Sie Golang, um eine Verbindung zur Datenbank herzustellen.

Wenn sich der Benutzer anmeldet, müssen wir das vom Benutzer eingegebene Kontokennwort mit den Daten in der Datenbank vergleichen, um die Richtigkeit der Anmeldeinformationen des Benutzers zu überprüfen. Hier verwenden wir das integrierte SQL-Paket von Golang, um den Datenbankverbindungsvorgang zu implementieren und die Anmeldeanforderungen von Golang zu realisieren.

Im Code können wir die folgende Methode verwenden, um eine Verbindung zur Datenbank herzustellen:

    import (
        "database/sql"
        _ "github.com/go-sql-driver/mysql"
    )

    func main() {
        db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
        if err != nil {
            log.Fatal(err)
        }
        defer db.Close()
    }

wobei db das Datenbankverbindungsobjekt ist, Benutzer der Datenbankbenutzername ist, Passwort das Datenbankkennwort ist und localhost:3306 die Adresse und den Port von darstellt Der Server, auf dem sich die Datenbank befindet. Datenbankname ist der Datenbankname. Auf diese Weise können wir eine Verbindung zur Datenbank herstellen.

3. Verwenden Sie Golang, um die Cookie-Anmeldung zu implementieren.

Cookies sind eine vom Benutzer verwaltete Informationsdatei, die zwischen dem Browser und dem Server übertragen wird. Wenn sich der Benutzer erfolgreich anmeldet, speichert der Server die Anmeldeinformationen des Benutzers in Cookies und sendet sie beim nächsten Besuch zur Überprüfung der Anmeldung an den Browser zurück. In Golang können wir das http.Cookie-Paket verwenden, um Cookies-bezogene Vorgänge abzuwickeln.

Im Code können wir die folgende Methode zum Betreiben von Cookies verwenden:

    import (
        "net/http"
    )

    func main() {
        http.HandleFunc("/", handler)
        http.ListenAndServe(":8080", nil)
    }

    func handler(w http.ResponseWriter, r *http.Request) {
        c := http.Cookie{
            Name: "cookie_name",
            Value: "cookie_value",
        }
        http.SetCookie(w, &c)

        c, err := r.Cookie("cookie_name")
        if err != nil {
            if err == http.ErrNoCookie {
                fmt.Fprintf(w, "No cookie found")
            } else {
                log.Fatal(err)
            }
        } else {
            fmt.Fprintf(w, "Cookie value is %s", c.Value)
        }
    }

Im obigen Code initialisieren wir zunächst ein Cookie-Objekt über http.Cookie und speichern es auf der Browserseite. Wenn der Browser das nächste Mal auf diese Seite zugreift, liest der Server die Cookie-Informationen und führt entsprechende Vorgänge aus.

4. Golang implementiert die OAuth2.0-Anmeldung

OAuth2.0 ist ein Autorisierungsframework, das eine sichere, offene und einfache Autorisierungsmethode bietet und Entwicklern einen Mechanismus zur Integration von Plattformautorisierungsdiensten von Drittanbietern bietet. In Golang können wir die Bibliothek go-oauth2/oauth verwenden, um die OAuth2.0-Anmeldung zu implementieren.

Im Code können wir die folgende Methode verwenden, um die OAuth2.0-Anmeldung zu implementieren:

    import (
        "github.com/markbates/goth/gothic"
        "github.com/markbates/goth/providers/google"
    )

    func main() {
        var g GoogleProviderCredentials

        g = GoogleProviderCredentials{
            clientID: "client_id",
            clientSecret: "client_secret",
            redirectURI: "redirect_uri",
        }

        goth.UseProviders(
            google.New(g.clientID, g.clientSecret, g.redirectURI, "email", "profile"),
        )

        route.GET("/auth/google/login", Controller.AuthGoogleLogin)
        route.GET("/auth/google/callback", Controller.AuthGoogleCallback)

        if err := http.ListenAndServe(":8080", nil); err != nil {
            fmt.Println(err)
        }
    }

    func AuthGoogleLogin(c *gin.Context) {
        gotham.LoginHandler(c.Writer, c.Request)
    }

    func AuthGoogleCallback(c *gin.Context) {
        user, err := gothic.CompleteUserAuth(c.Writer, c.Request)
        if err != nil {
            log.Stderr("{Error: %s}", err)
        }

        fmt.Println(user.AccessToken)

        c.Redirect(http.StatusMovedPermanently, "/")
    }

Im obigen Code verwenden wir zunächst die gotham.UseProviders-Methode, um eine Verbindung zu Serviceplattformen von Drittanbietern wie Google herzustellen. Wenn der Benutzer die Anmeldeplattform über die Anmeldeschnittstelle auswählt und erfolgreich authentifiziert wird, wird er direkt an die Rückrufadresse weitergeleitet, die wir im Google-Backend konfiguriert haben, um den gesamten OAuth2.0-Autorisierungsprozess abzuschließen.

Fazit

Durch die obige Einführung glaube ich, dass jeder bereits ein Verständnis für Golangs Login und die damit verbundenen Technologien hat. Unabhängig davon, ob Sie Web-Frameworks verwenden, Datenbanken verknüpfen, Cookies betreiben oder OAuth2.0-Anmeldefunktionen implementieren, ist Golang sehr leistungsstark und kann unsere Anforderungen in der tatsächlichen Entwicklung erfüllen.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Benutzeranmeldefunktion mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:So starten Sie mit GolangNächster Artikel:So starten Sie mit Golang