Sobes.tech
Junior — Middle

Welke methoden hebt u gebruikt of kent u voor het implementeren van het inlogproces voor gebruikers?

sobes.tech AI

Antwoord van AI

Om de login van een gebruiker in Go te implementeren, worden meestal de volgende methoden gebruikt:

  • Authenticatie via gebruikersnaam en wachtwoord met opslag van wachtwoord-hashes (bijvoorbeeld bcrypt).
  • Gebruik van JWT (JSON Web Tokens) om een sessietoken te creëren na succesvolle login.
  • OAuth2 voor autorisatie via externe diensten (Google, Facebook, etc.).
  • Sessies met cookies voor webapplicaties.

Voorbeeld van een eenvoudige login met wachtwoordcontrole:

import (
    "golang.org/x/crypto/bcrypt"
    "net/http"
)

func loginHandler(w http.ResponseWriter, r *http.Request) {
    username := r.FormValue("username")
    password := r.FormValue("password")

    // Haal het wachtwoord-hash op uit de database op basis van de gebruikersnaam
    hashedPassword := getHashedPasswordFromDB(username)

    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    if err != nil {
        http.Error(w, "Ongeldige inloggegevens", http.StatusUnauthorized)
        return
    }

    // Maak een sessie of JWT aan en stuur deze naar de client
}

Het proces omvat dus de wachtwoordcontrole, het aanmaken van een token of sessie en het beheer van de gebruikersstatus.