Sobes.tech
Junior — Middle

Ποια μηχανισμοί αυθεντικοποίησης και εξουσιοδότησης εφαρμόστηκαν στα έργα σας;

sobes.tech AI

Απάντηση από AI

Στα έργα σε Go, συχνά χρησιμοποιούνται τα ακόλουθα μηχανισμοί αυθεντικοποίησης και εξουσιοδότησης:

  • JWT (JSON Web Tokens) — για χωρίς κατάσταση αυθεντικοποίηση, όπου ο διακομιστής εκδίδει ένα token μετά από επιτυχημένη σύνδεση, και ο πελάτης το στέλνει στα κεφαλίδια των αιτημάτων.
  • Basic Auth — απλός τρόπος μετάδοσης ονόματος χρήστη και κωδικού πρόσβασης στα κεφαλίδια, συνήθως για εσωτερικές υπηρεσίες.
  • OAuth 2.0 — για ενσωμάτωση με εξωτερικούς παρόχους (Google, Facebook), ιδιαίτερα σε web εφαρμογές.
  • Middleware για έλεγχο δικαιωμάτων πρόσβασης — σε Go, συχνά υλοποιείται μέσω middleware που ελέγχει την παρουσία και εγκυρότητα του token, καθώς και τα δικαιώματα του χρήστη.

Παράδειγμα απλού 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
        }
        // Εδώ προσθέστε λογική ελέγχου του token
        // Αν το token είναι έγκυρο:
        next.ServeHTTP(w, r)
    })
}