Sobes.tech
Junior — Middle

თქვენი პროექტებში რა ავტორიზაციის და სერთიფიკაციის მექანიზმები გამოიყენებოდა?

sobes.tech AI

პასუხი AI-სგან

Go პროექტებში ხშირად გამოიყენება შემდეგი ავტორიზაციის და ავტენტიფიკაციის მექანიზმები:

  • JWT (JSON Web Tokens) — სტატელეს ავტორიზაციისთვის, სადაც სერვერი წარმატებული შესვლის შემდეგ გამოყოფს ტოკენს, და კლაიენტი მას აგზავნის მოთხოვნის თავში.
  • Basic Auth — მარტივი მეთოდი, სადაც მომხმარებლის სახელი და პაროლი გადაეცემა თავში, ჩვეულებრივ შიდა სერვისებისთვის.
  • OAuth 2.0 — ინტეგრაციისთვის გარე პროვაიდერებთან (Google, Facebook), განსაკუთრებით ვებ-აპლიკაციებში.
  • Middleware-ის გამოყენება უფლებების შემოწმებისთვის — Go-ში ეს ხშირად ხორციელდება middleware-ის მეშვეობით, რომელიც ამოწმებს ტოკენის არსებობას და სისწორეს, ასევე მომხმარებლის უფლებებს.

პროექტის მაგალითი მარტივი 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
        }
        // აქ დაამატეთ ტოკენის შემოწმების ლოგიკა
        // თუ ტოკენი ვალიდურია:
        next.ServeHTTP(w, r)
    })
}