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)
})
}