Sobes.tech
Junior — Middle

Jakie mechanizmy uwierzytelniania i autoryzacji były stosowane w Twoich projektach?

sobes.tech AI

Odpowiedź od AI

W projektach w Go często stosuje się następujące mechanizmy uwierzytelniania i autoryzacji:

  • JWT (JSON Web Tokens) — do bezstanowego uwierzytelniania, gdzie serwer wydaje token po pomyślnym zalogowaniu, a klient przesyła go w nagłówkach żądań.
  • Basic Auth — prosty sposób przesyłania loginu i hasła w nagłówku, zwykle dla usług wewnętrznych.
  • OAuth 2.0 — do integracji z zewnętrznymi dostawcami (Google, Facebook), szczególnie w aplikacjach webowych.
  • Middleware do sprawdzania uprawnień — w Go często realizowane przez middleware, które sprawdza obecność i ważność tokena, a także prawa użytkownika.

Przykład prostego middleware do sprawdzania JWT w Go:

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
        }
        // Tutaj dodać logikę sprawdzania tokena
        // Jeśli token jest ważny:
        next.ServeHTTP(w, r)
    })
}