Sobes.tech
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.