Junior — Middle
Quelles méthodes avez-vous utilisées ou connaissez pour implémenter le processus de connexion de l'utilisateur au système?
sobes.tech IA
Réponse de l'IA
Pour implémenter la connexion d'un utilisateur dans Go, on utilise généralement les méthodes suivantes:
- Authentification par login et mot de passe avec stockage des hash de mots de passe (par exemple, bcrypt).
- Utilisation de JWT (JSON Web Tokens) pour créer un jeton de session après une connexion réussie.
- OAuth2 pour l'autorisation via des services tiers (Google, Facebook, etc.).
- Sessions avec cookies pour les applications web.
Exemple d'une connexion simple avec vérification du mot de passe:
import (
"golang.org/x/crypto/bcrypt"
"net/http"
)
func loginHandler(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Récupérer le hash du mot de passe depuis la base de données par username
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Identifiants invalides", http.StatusUnauthorized)
return
}
// Créer une session ou un JWT et l'envoyer au client
}
Ainsi, le processus inclut la vérification du mot de passe, la création du token ou de la session et la gestion de l'état de l'utilisateur.