Junior — Middle
Loyihalaringizda qanday autentifikatsiya va ruxsat berish mexanizmlari qo'llanildi?
sobes.tech AI
AIdan javob
Go loyihalarida ko‘pincha quyidagi autentifikatsiya va ruxsat berish mexanizmlari qo‘llaniladi:
- JWT (JSON Web Tokens) — stateless autentifikatsiya uchun, bu yerda server muvaffaqiyatli kirishdan so‘ng token chiqaradi va mijoz uni so‘rov sarlavhasida yuboradi.
- Basic Auth — oddiy usul bo‘lib, login va parolni sarlavhada uzatadi, odatda ichki xizmatlar uchun.
- OAuth 2.0 — tashqi provayderlar bilan integratsiya uchun (Google, Facebook), ayniqsa veb-ilovalar uchun.
- Ruxsatlarni tekshirish uchun middleware — Go da, odatda, middleware orqali amalga oshiriladi, u token mavjudligini va validligini, shuningdek foydalanuvchi huquqlarini tekshiradi.
Go da JWT ni tekshirish uchun oddiy middleware misoli:
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
}
// Bu yerda tokenni tekshirish logikasini qo‘shing
// Agar token valid bo‘lsa:
next.ServeHTTP(w, r)
})
}