Junior — Middle
Koje mehanizme autentifikacije i autorizacije ste koristili u vašim projektima?
sobes.tech АИ
Одговор од АИ
У пројектима у 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)
})
}