Sobes.tech
Junior — Middle

Kokius autentifikavimo ir autorizacijos mechanizmus taikėte savo projektuose?

sobes.tech AI

Atsakymas iš AI

Go projektuose dažnai naudojami šie autentifikacijos ir autorizacijos mechanizmai:

  • JWT (JSON Web Tokens) — be būsenos autentifikacijai, kai serveris išduoda token po sėkmingo prisijungimo, o klientas jį siunčia užklausų antraštėse.
  • Basic Auth — paprastas būdas perduoti prisijungimo vardą ir slaptažodį antraštėje, dažniausiai vidiniams servisams.
  • OAuth 2.0 — integracijai su išoriniais tiekėjais (Google, Facebook), ypač internetinėse programose.
  • Middleware, tikrinantis prieigos teises — Go dažnai įgyvendinama per middleware, kuris tikrina token buvimą ir galiojimą, taip pat naudotojo teises.

Pavyzdys paprasto middleware, tikrinančio JWT, Go kalba:

func AuthMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        tokenString := r.Header.Get("Authorization")
        if tokenString == "" {
            http.Error(w, "Unauthorized", http.StatusUnauthorized)
            return
        }
        // Čia pridėti tokeno patikros logiką
        // Jei tokenas galioja:
        next.ServeHTTP(w, r)
    })
}