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.