Sobes.tech
Junior — Middle

Kādus autentifikācijas un autorizācijas mehānismus izmantojāt savos projektos?

sobes.tech AI

Atbilde no AI

Go projektos bieži izmanto šādus autentifikācijas un autorizācijas mehānismus:

  • JWT (JSON Web Tokens) — bezvalstniecības autentifikācijai, kur serveris pēc veiksmīgas pieteikšanās izdod tokenu, ko klients nosūta pieprasījuma galvenē.
  • Basic Auth — vienkāršs veids, kā pārsūtīt lietotājvārdu un paroli galvenē, parasti iekšējām pakalpojumiem.
  • OAuth 2.0 — integrācijai ar ārējiem pakalpojumu sniedzējiem (Google, Facebook), īpaši tīmekļa lietojumprogrammās.
  • Middleware, kas pārbauda piekļuves tiesības — Go bieži realizē ar middleware, kas pārbauda tokena klātbūtni un derīgumu, kā arī lietotāja tiesības.

Piemērs vienkāršam middleware, kas pārbauda JWT Go valodā:

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
        }
        // Šeit pievienot tokena pārbaudes loģiku
        // Ja tokens ir derīgs:
        next.ServeHTTP(w, r)
    })
}