Sobes.tech
Junior — Middle

Какви механизми за удостоверяване и авторизация са били използвани във вашите проекти?

sobes.tech AI

Отговор от AI

В проектите на Go често се използват следните механизми за удостоверяване и авторизация:

  • JWT (JSON Web Tokens) — за безсъстояние удостоверяване, при което сървърът издава токен след успешен вход, а клиентът го изпраща в заглавките на заявките.
  • Basic Auth — прост начин за предаване на потребителско име и парола в заглавката, обикновено за вътрешни услуги.
  • OAuth 2.0 — за интеграция с външни доставчици (Google, Facebook), особено в уеб приложения.
  • Middleware за проверка на правата за достъп — в Go често се реализира чрез middleware, който проверява наличието и валидността на токена, както и правата на потребителя.

Пример за прост middleware за проверка на JWT в 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
        }
        // Тук добавете логика за проверка на токена
        // Ако токенът е валиден:
        next.ServeHTTP(w, r)
    })
}