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.