Maison > développement back-end > Golang > Comment configurer une session dans Golang

Comment configurer une session dans Golang

PHPz
Libérer: 2023-04-25 13:59:47
original
882 Les gens l'ont consulté

GoLang est un langage de programmation très populaire car il offre un moyen rapide, efficace et sécurisé de développer des applications Web. Dans cet article, nous présenterons comment configurer une session à l'aide de GoLang.

Qu'est-ce que la Session ?

Session est un mécanisme de gestion des informations utilisateur dans les applications Web. Lorsqu'un utilisateur se connecte à une application Web, le serveur crée une session, puis l'ID de session est envoyé au navigateur comme en-tête de réponse via les cookies. La prochaine fois que l'utilisateur enverra une demande dans cette application Web, il établira une session avec le serveur via l'ID de session enregistré dans les cookies. La session restera active jusqu'à ce que l'utilisateur choisisse de se déconnecter ou que la session expire.

Dans GoLang, de nombreuses bibliothèques sont fournies pour gérer les sessions, telles que gorilla/sessions, cookie-session, etc. Cet article utilisera la bibliothèque gorilla/sessions pour montrer comment configurer une session.

Configurer la session

Avant de commencer à configurer la session, vous devez télécharger et installer la bibliothèque gorilla/sessions. Vous pouvez exécuter la commande suivante pour télécharger la bibliothèque :

go get github.com/gorilla/sessions
Copier après la connexion

Le processus de configuration d'une session dans GoLang est grossièrement divisé en trois étapes suivantes :

  1. Initialiser une nouvelle session.
  2. Stockez la valeur qui doit être enregistrée dans la session.
  3. Enregistrez la session dans un cookie.

Voici un exemple de code simple :

package main

import (
    "github.com/gorilla/sessions"
    "net/http"
)

var store = sessions.NewCookieStore([]byte("secret"))

func main() {
    http.HandleFunc("/", indexHandler)
    http.ListenAndServe(":8000", nil)
}

func indexHandler(w http.ResponseWriter, r *http.Request) {
    session, err := store.Get(r, "sessionid")
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    if session.IsNew {
        session.Values["username"] = "johndoe"
        session.Values["logged_in"] = true
        err = session.Save(r, w)
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
    }

    w.Write([]byte("Hello " + session.Values["username"].(string)))
}
Copier après la connexion

Dans le code ci-dessus, nous créons d'abord un nouvel objet CookieStore à l'aide de la fonction NewCookieStore() et définissons une tranche d'octets clé pour crypter le cookie. Ensuite, nous définissons une fonction indexHandler, dans laquelle nous obtenons l'instance de session basée sur le cookie dans la requête. Si la session n'existe pas, nous stockons d'abord les valeurs de nom d'utilisateur et de login_in dans la session, puis enregistrons la session dans le cookie. Si la session existe déjà, nous obtenons la valeur du nom d'utilisateur de la session et renvoyons la valeur à l'utilisateur via la réponse.

D'accord, ceci est un exemple de traitement de session très simple. Dans les applications réelles, nous pouvons avoir une logique de session et une interaction avec la base de données plus complexes, mais les concepts de base de la session sont les mêmes.

Résumé

Dans cet article, nous avons appris comment configurer une session dans GoLang à l'aide de la bibliothèque gorilla/sessions. Pour utiliser la session, nous devons initialiser une instance de session, enregistrer les informations qui doivent être enregistrées dans la session, puis conserver la session dans un cookie.

J'espère que cet article sera utile aux lecteurs qui souhaitent apprendre des sessions en Golang.

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