Sobes.tech
Junior — Middle

Jaké metody jste použili nebo znáte pro implementaci procesu přihlášení uživatele do systému?

sobes.tech AI

Odpověď od AI

Pro implementaci přihlášení uživatele v Go se obvykle používají následující metody:

  • Autentizace pomocí přihlašovacího jména a hesla s ukládáním hashů hesel (například bcrypt).
  • Použití JWT (JSON Web Tokens) k vytvoření tokenu relace po úspěšném přihlášení.
  • OAuth2 pro autorizaci přes služby třetích stran (Google, Facebook atd.).
  • Relace s cookies pro webové aplikace.

Příklad jednoduchého přihlášení 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ískat hash hesla z databáze podle uživatelského jména
    hashedPassword := getHashedPasswordFromDB(username)

    err := bcrypt.CompareHashAndPassword([]byte(hashedPassword), []byte(password))
    if err != nil {
        http.Error(w, "Neplatné přihlašovací údaje", http.StatusUnauthorized)
        return
    }

    // Vytvořit relaci nebo JWT a odeslat klientovi
}

Proces zahrnuje kontrolu hesla, vytvoření tokenu nebo relace a správu stavu uživatele.