Junior — Middle
Milyen módszereket használt vagy ismer a felhasználói bejelentkezési folyamat megvalósításához?
sobes.tech MI
Válasz az MI-től
A felhasználó bejelentkezésének megvalósításához Go-ban általában a következő módszereket használják:
- Bejelentkezés és jelszó hitelesítés, jelszó hash-ek tárolásával (pl. bcrypt).
- JWT (JSON Web Tokens) használata a sikeres bejelentkezés utáni munkamenet token létrehozásához.
- OAuth2 külső szolgáltatásokon keresztüli engedélyezéshez (Google, Facebook stb.).
- Webalkalmazásokhoz cookie-alapú munkamenetek.
Egyszerű bejelentkezés példája jelszó ellenőrzéssel:
import (
"golang.org/x/crypto/bcrypt"
"net/http"
)
func loginHandler(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Jelszó hash lekérése az adatbázisból a felhasználónév alapján
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Érvénytelen hitelesítő adatok", http.StatusUnauthorized)
return
}
// Munkamenet vagy JWT létrehozása és küldése a kliensnek
}
A folyamat magában foglalja a jelszó ellenőrzését, a token vagy munkamenet létrehozását és a felhasználó állapotának kezelését.