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)
})
}