Sobes.tech
Junior — Middle

İstifadəçi identifikasiyası və icazə sistemlərinin tətbiqi və konfiqurasiyası sahəsində təcrübəniz nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go layihələrində, JWT (JSON Web Tokens) və OAuth2 istifadə edərək autentifikasiya və icazə sistemləri tətbiq etmişəm. Adətən proses aşağıdakı mərhələləri əhatə edir:

  • İstifadəçi uğurlu autentifikasiya etdikdən sonra token alan qeydiyyat və giriş üçün endpointlərin yaradılması.
  • Qorunan marşrutlarda tokenin etibarlılığını yoxlamaq üçün middleware istifadə olunması.
  • İstifadəçilərin rollarına görə fəaliyyətlərini məhdudlaşdırmaq üçün rollar və icazələrin konfiqurasiyası.

JWT-ni yoxlamaq üçün sadə middleware nümunəsi:

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
        }
        // Burada tokenin doğruluğu yoxlanılır
        // Əgər düzgünsə, növbəti handler çağırılır
        next.ServeHTTP(w, r)
    })
}

Daha mürəkkəb ssenarilər üçün, golang.org/x/oauth2 kimi kitabxanalardan istifadə etmişəm, xarici provayderlərlə inteqrasiya üçün.