Maison  >  Article  >  développement back-end  >  Comment utiliser Golang pour implémenter la fonction de connexion utilisateur

Comment utiliser Golang pour implémenter la fonction de connexion utilisateur

PHPz
PHPzoriginal
2023-04-11 09:12:551762parcourir

Golang est un langage de programmation efficace et fiable adapté au développement d'applications d'entreprise à grande échelle. Dans le domaine Internet d'aujourd'hui, la fonction de connexion de l'utilisateur est un lien indispensable. Comment utiliser Golang pour implémenter la fonction de connexion de l'utilisateur ? Cet article présentera les connaissances pertinentes de Golang pour implémenter la connexion sous les aspects suivants.

1. Utilisez Golang pour concevoir la page de connexion utilisateur

Dans Golang, nous pouvons utiliser le framework Web pour créer la page de connexion utilisateur. Les frameworks Web actuellement populaires incluent : Beego, Echo, etc. Cet article utilise le framework Beego comme exemple pour montrer comment créer une page de connexion utilisateur.

Tout d'abord, vous devez installer le framework Beego et l'outil de ligne de commande Beego correspondant. Entrez la commande suivante dans l'environnement de ligne de commande pour terminer l'installation :

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

Après avoir installé Beego, nous pouvons utiliser les outils de ligne de commande de Beego pour créer un nouveau projet. Entrez la commande suivante sur la ligne de commande :

    bee new projectname

où "projectname" est le nom du projet que vous souhaitez créer. Après avoir créé le projet, nous devons créer un nouveau modèle de connexion dans le projet. Le modèle comprend des zones de saisie pour le nom d'utilisateur et le mot de passe, ainsi qu'un bouton de connexion. Après avoir créé la page, nous devons traiter la logique de connexion dans le code, par exemple vérifier si le compte et le mot de passe de l'utilisateur sont corrects. S'ils sont corrects, accédez à la page requise. Sinon, l'utilisateur sera invité à se connecter. .

2. Utilisez Golang pour vous connecter à la base de données

Lorsque l'utilisateur se connecte, nous devons comparer le mot de passe du compte saisi par l'utilisateur avec les données de la base de données pour vérifier l'exactitude des informations de connexion de l'utilisateur. Ici, nous utilisons le package SQL intégré de Golang pour implémenter l'opération de connexion à la base de données et réaliser les exigences de connexion de Golang.

Dans le code, nous pouvons utiliser la méthode suivante pour nous connecter à la base de données :

    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()
    }

où db est l'objet de connexion à la base de données, user est le nom d'utilisateur de la base de données, password est le mot de passe de la base de données, localhost:3306 représente l'adresse et le port du serveur où se trouve la base de données, dbname est le nom de la base de données. De cette façon, nous pouvons nous connecter à la base de données.

3. Utilisez Golang pour implémenter la connexion aux cookies

Les cookies sont un fichier d'informations conservé par l'utilisateur qui est transmis entre le navigateur et le serveur. Lorsque l'utilisateur se connecte avec succès, le serveur stockera les informations de connexion de l'utilisateur dans des cookies et les renverra au navigateur pour vérification de connexion lors de la prochaine visite. Dans Golang, nous pouvons utiliser le package http.Cookie pour gérer les opérations liées aux cookies.

Dans le code, nous pouvons utiliser la méthode suivante pour faire fonctionner les cookies :

    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)
        }
    }

Dans le code ci-dessus, nous initialisons d'abord un objet Cookie via http.Cookie et l'enregistrons côté navigateur. La prochaine fois que le navigateur accédera à cette page, le serveur lira les informations sur les cookies et effectuera les opérations associées.

4. Golang implémente la connexion OAuth2.0

OAuth2.0 est un cadre d'autorisation qui fournit une méthode d'autorisation sûre, ouverte et simple, et fournit aux développeurs un mécanisme pour intégrer des services d'autorisation de plate-forme tierce. Dans Golang, nous pouvons utiliser la bibliothèque go-oauth2/oauth pour implémenter la connexion OAuth2.0.

Dans le code, nous pouvons utiliser la méthode suivante pour implémenter la connexion OAuth2.0 :

    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, "/")
    }

Dans le code ci-dessus, nous utilisons d'abord la méthode gotham.UseProviders pour nous connecter à des plateformes de services tierces telles que Google. Lorsque l'utilisateur sélectionne la plate-forme de connexion via l'interface de connexion et est authentifié avec succès, il sera redirigé directement vers l'adresse de rappel que nous avons configurée dans le backend de Google pour terminer l'ensemble du processus d'autorisation OAuth2.0.

Conclusion

Grâce à l'introduction ci-dessus, je pense que tout le monde a déjà une compréhension de la connexion de Golang et des technologies associées. Qu'il s'agisse d'utiliser des frameworks Web, de relier des bases de données, d'exploiter des cookies ou de mettre en œuvre des fonctions de connexion OAuth2.0, Golang est très puissant et peut répondre à nos besoins en développement réel.

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!

Déclaration:
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
Article précédent:Comment démarrer avec GolangArticle suivant:Comment démarrer avec Golang