Back to questions
Junior — Middle
80
Какие механизмы аутентификации и авторизации применялись в ваших проектах?
Companies where asked
Rubytech
Answer from AI
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)
})
}