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)
})
}