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

demande de connexion à Golang

王林
Libérer: 2023-05-16 13:00:38
original
618 Les gens l'ont consulté

Avec le développement continu d'Internet, de plus en plus de services nécessitent que les utilisateurs se connectent avant de pouvoir être utilisés, la fonction de connexion est donc devenue l'une des fonctions que chaque application Web doit avoir. L'utilisation de Golang pour développer des fonctions de connexion peut améliorer efficacement l'efficacité opérationnelle et la maintenabilité.

Golang (également connu sous le nom de Go) est un langage de programmation open source développé par Google Depuis son lancement, il a été largement utilisé pour le développement d'applications Web. Golang est efficace, multiplateforme et facile à démarrer. C'est l'un des langages préférés pour développer des services Web à haute concurrence.

Dans cet article, nous allons vous présenter comment mettre en œuvre une demande de connexion à l'aide de Golang. Tout d’abord, nous aborderons les étapes nécessaires pour mettre en œuvre une demande de connexion. Ensuite, nous donnerons un exemple de programme spécifique afin que vous puissiez mieux comprendre les méthodes et techniques de mise en œuvre des demandes de connexion.

Étapes pour mettre en œuvre une demande de connexion

Les étapes pour mettre en œuvre une demande de connexion comprennent principalement :

  1. Créer une interface de connexion.

La première étape de la fonction de connexion utilisateur consiste à créer une interface de connexion pour saisir le nom d'utilisateur et le mot de passe. Habituellement, l'interface de connexion se compose de deux zones de texte : nom d'utilisateur et mot de passe.

  1. Obtenez les informations de connexion de l'utilisateur.

Dans Golang, nous pouvons utiliser des frameworks Web (tels que Gin, Beego, etc.) pour obtenir le nom d'utilisateur et le mot de passe saisis par l'utilisateur. La méthode d'implémentation spécifique consiste à soumettre les données du formulaire au serveur via POST, et le serveur peut obtenir les données POST via l'objet Request.

  1. Valider la saisie de l'utilisateur.

Après avoir obtenu la saisie de l'utilisateur, le nom d'utilisateur et le mot de passe saisis doivent être vérifiés. Habituellement, nous comparerons d'abord si le nom d'utilisateur et le mot de passe saisis correspondent à ceux stockés dans la base de données. S'ils correspondent, vous pouvez passer à l'étape suivante ; s'ils ne correspondent pas, un message d'erreur est renvoyé à l'utilisateur.

  1. Construct demande de connexion.

Une fois le nom d'utilisateur et le mot de passe saisis par l'utilisateur vérifiés, le serveur générera un jeton sécurisé pour l'utilisateur, qui pourra identifier l'identité de l'utilisateur et enregistrer le statut de connexion de l'utilisateur. Une fois le jeton généré, le serveur doit le structurer en un paquet (par exemple au format JSON) qui peut être envoyé au client.

  1. Envoyer la demande de connexion.

Grâce au package http ou à la bibliothèque d'extensions officielle ou tierce dans le framework web, nous pouvons facilement écrire le code pour envoyer la demande de connexion. En envoyant une demande de connexion, le serveur envoie le jeton au client ; une fois que le client a reçu le jeton, il peut le sauvegarder et l'utiliser pour des opérations ultérieures.

Exemple de programme

Ci-dessous, nous démontrerons la mise en œuvre des étapes ci-dessus à travers un simple exemple de programme de demande de connexion. Tout d'abord, vous devez créer une simple page de connexion HTML, comprenant deux zones de saisie pour le nom d'utilisateur et le mot de passe et un bouton de soumission :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
<form method="post" action="/login">
    <h1>登录页面</h1>
    <label>用户名:</label><br/>
    <input type="text" name="username"><br/><br/>
    <label>密码:</label><br/>
    <input type="password" name="password"><br/><br/>
    <input type="submit" value="登录">
</form>
</body>
</html>
Copier après la connexion

Dans Golang, nous pouvons utiliser le framework Gin pour traiter les demandes de connexion. Tout d'abord, vous devez importer la bibliothèque gin :

import (
"github.com/gin-gonic/gin"
)
Copier après la connexion

Ensuite, vous devez créer le moteur Gin et les règles de routage :

router := gin.Default()
router.POST("/login", handleLogin)
Copier après la connexion

Ensuite, vous devez écrire la fonction handleLogin, qui est utilisée pour traiter les demandes de connexion :

func handleLogin(c *gin.Context) {
    username := c.PostForm("username")
    password := c.PostForm("password")

    if username == "admin" && password == "123456" {
        token := generateToken() // 生成令牌
        c.JSON(http.StatusOK, gin.H{
            "code": 1,
            "msg":  "登录成功",
            "data": token,
        })
    } else {
        c.JSON(http.StatusOK, gin.H{
            "code": 0,
            "msg":  "用户名或密码错误",
            "data": "",
        })
    }
}
Copier après la connexion

Dans la fonction handleLogin, on obtient d'abord Le nom d'utilisateur et le mot de passe saisis par l'utilisateur sont ensuite vérifiés en les comparant à la base de données. Si la vérification réussit, nous générerons un jeton et le construirons dans un paquet de données au format JSON et le renverrons ; si la vérification échoue, nous renverrons directement un message d'erreur.

Le code pour générer le jeton est le suivant :

func generateToken() string {
    return randString(32)
}
Copier après la connexion

Dans la fonction generateToken, nous appelons une fonction randString pour générer une chaîne aléatoire de longueur 32, qui est le jeton que nous avons généré.

func randString(len int) string {
    bytes := make([]byte, len)
    if _, err := rand.Read(bytes); err != nil {
        log.Fatalln(err)
    }
    return base64.StdEncoding.EncodeToString(bytes)
}
Copier après la connexion

Enfin, la page de connexion HTML doit être combinée avec le moteur Gin afin que les utilisateurs puissent accéder à la page de connexion via le navigateur. Le code est le suivant :

router.LoadHTMLGlob("templates/*")

router.GET("/", func(c *gin.Context) {
    c.HTML(http.StatusOK, "login.html", gin.H{})
})

router.Run(":8080")
Copier après la connexion

Dans le programme, on appelle d'abord la fonction router.LoadHTMLGlob pour spécifier le chemin du modèle HTML. Ensuite, nous lions une règle de routage par défaut pour rediriger la requête de l'utilisateur vers la page de connexion. Enfin, nous appelons la fonction router.Run pour que le programme puisse démarrer un serveur HTTP localement et écouter sur le port 8080.

Après avoir exécuté le programme, l'utilisateur peut accéder à la page de connexion en accédant à http://localhost:8080 via le navigateur. Si le nom d'utilisateur et le mot de passe saisis sont corrects, un paquet au format JSON sera reçu contenant le jeton généré. Si le nom d'utilisateur et le mot de passe saisis sont incorrects, un message d'erreur sera renvoyé.

Résumé

Cet article explique comment utiliser Golang pour implémenter les demandes de connexion. Les étapes de mise en œuvre comprennent : la création d'une interface de connexion, l'obtention des entrées de connexion de l'utilisateur, la validation des entrées de l'utilisateur, la construction d'une demande de connexion et l'envoi d'une demande de connexion. Nous fournissons également un exemple de programme simple grâce auquel vous pourrez mieux comprendre comment utiliser Golang pour développer des demandes de connexion. Bien entendu, les méthodes et techniques de mise en œuvre spécifiques doivent être ajustées et optimisées en fonction des différents projets et besoins.

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.cn
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