Junior — Middle
Aké metódy ste použili alebo poznáte na implementáciu procesu prihlásenia používateľa do systému?
sobes.tech AI
Odpoveď od AI
Za implementáciu prihlásenia používateľa v Go sa zvyčajne používajú nasledujúce metódy:
- Autentifikácia pomocou prihlasovacieho mena a hesla s ukladaním hashov hesiel (napríklad bcrypt).
- Použitie JWT (JSON Web Tokens) na vytvorenie relácie tokenu po úspešnom prihlásení.
- OAuth2 na autorizáciu cez externé služby (Google, Facebook atď.).
- Relácie s cookies pre webové aplikácie.
Príklad jednoduchého prihlásenia s kontrolou hesla:
import (
"golang.org/x/crypto/bcrypt"
"net/http"
)
func loginHandler(w http.ResponseWriter, r *http.Request) {
username := r.FormValue("username")
password := r.FormValue("password")
// Získať hash hesla z databázy podľa používateľského mena
hashedPassword := getHashedPasswordFromDB(username)
err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
if err != nil {
http.Error(w, "Neplatné prihlasovacie údaje", http.StatusUnauthorized)
return
}
// Vytvoriť reláciu alebo JWT a odoslať klientovi
}
Proces zahŕňa kontrolu hesla, vytvorenie tokenu alebo relácie a správu stavu používateľa.