Sobes.tech
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)
    })
}