Sobes.tech
Junior — Middle

Туркии системҳои тасдиқ ва иҷозатро чӣ гуна татбиқ ва танзим мекунед?

sobes.tech AI

Ҷавоб аз AI

Дар проектҳо дар Go, ман системҳои аутентификатсия ва иҷозатро бо истифода аз JWT (JSON Web Tokens) ва OAuth2 татбиқ намудам. Одатан, раванҷ аз инҳо иборат аст:

  • Эҷоди нуқтаҳои охир барои сабт ва воридот, ки дар он корбар пас аз аутентификатсияи муваффақ токен мегирад.
  • Истифодаи middleware барои санҷиши эътибори токен дар роҳҳои муҳофизатшуда.
  • Танзими ролҳо ва ҳуқуқҳо барои маҳдуд кардани амалҳои корбарон вобаста ба ролашон.

Масалан, middleware оддӣ барои санҷиши JWT:

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

Барои сценарияҳои мураккаб, ман китобхонаҳои мисли golang.org/x/oauth2-ро барои ҳамгироӣ бо таъминкунандагони хориҷӣ истифода мекардам.