Sobes.tech
Назад к вопросам
Junior — Middle
79

Какие механизмы аутентификации и авторизации применялись в ваших проектах?

Компании, где спрашивали
Rubytech

Ответ от нейросети

sobes.tech AI

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

  • JWT (JSON Web Tokens) — для stateless аутентификации, где сервер выдает токен после успешного входа, и клиент передает его в заголовках запросов.
  • 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)
    })
}