Sobes.tech
Junior — Middle

Aké máte skúsenosti s implementáciou a konfiguráciou systémov overovania a autorizácie?

sobes.tech AI

Odpoveď od AI

V projektoch v Go som implementoval systémy autentifikácie a autorizácie s použitím JWT (JSON Web Tokens) a OAuth2. Zvyčajne proces zahŕňa:

  • Vytvorenie endpointov na registráciu a prihlásenie, kde používateľ dostane token po úspešnej autentifikácii.
  • Použitie middleware na kontrolu platnosti tokenu na chránených trasách.
  • Konfiguráciu rolí a práv na obmedzenie akcií používateľov podľa ich roly.

Príklad jednoduchého middleware na kontrolu JWT:

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
        }
        // Tu prebieha validácia tokenu
        // Ak je platný, voláme ďalší handler
        next.ServeHTTP(w, r)
    })
}

Pre zložitejšie scenáre som používal knižnice ako golang.org/x/oauth2 na integráciu s externými poskytovateľmi.