Junior — Middle
Koje ste metode koristili ili poznajete za implementaciju procesa prijave korisnika u sistem?
sobes.tech АИ
Одговор од АИ
Za implementaciju prijave korisnika u Go-u, obično se koriste sledeće metode:
- Autentifikacija putem korisničkog imena i lozinke sa skladištenjem hash-ova lozinki (npr. bcrypt).
- Korišćenje JWT (JSON Web Tokens) za kreiranje sesijskog tokena nakon uspešne prijave.
- OAuth2 za autorizaciju putem spoljašnjih servisa (Google, Facebook itd.).
- Sesije sa kolačićima za veb aplikacije.
Primer jednostavne prijave sa proverom lozinke:
import (
"golang.org/x/crypto/bcrypt"
"net/http"
)
func loginHandler(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Dobijanje hash-a lozinke iz baze podataka po korisničkom imenu
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Nevažeći kredencijali", http.StatusUnauthorized)
return
}
// Kreiranje sesije ili JWT i slanje klijentu
}
Proces uključuje proveru lozinke, kreiranje tokena ili sesije i upravljanje stanjem korisnika.