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