Junior — Middle
Ce metode ați folosit sau cunoașteți pentru implementarea procesului de autentificare a utilizatorului în sistem?
sobes.tech AI
Răspuns de la AI
Pentru implementarea autentificării utilizatorului în Go, se utilizează de obicei următoarele metode:
- Autentificare prin login și parolă cu stocarea hash-urilor parolelor (de exemplu, bcrypt).
- Utilizarea JWT (JSON Web Tokens) pentru crearea unui token de sesiune după o autentificare reușită.
- OAuth2 pentru autorizare prin servicii terțe (Google, Facebook etc.).
- Sesiuni cu cookie-uri pentru aplicații web.
Exemplu de login simplu cu verificarea parolei:
import (
"golang.org/x/crypto/bcrypt"
"net/http"
)
func loginHandler(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Obține hash-ul parolei din baza de date pe baza username-ului
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Credențiale invalide", http.StatusUnauthorized)
return
}
// Creează o sesiune sau JWT și trimite-o clientului
}
Procesul include verificarea parolei, crearea token-ului sau sesiunii și gestionarea stării utilizatorului.