Передача данных с запросом

Скажем, у нас есть некоторое промежуточное программное обеспечение для аутентификации:

router.Use(auth);

и это выглядит так:

func auth(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

    if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
        var user User
        mapstructure.Decode(claims, &user)
        return next.ServeHTTP(w, r)
    } 

     json.NewEncoder(w).Encode(Exception{Message: "Invalid authorization token"})

    })
}

Мой вопрос - если мы декодируем утверждения JWT в пользователя, как я могу ссылаться на этого пользователя в других функциях промежуточного программного обеспечения. Используя Node.js Express, я могу просто прикрепить пользователя к объекту запроса. Есть ли способ сделать это с Голангом?

Единственный способ узнать, как это сделать, - создать карту, сопоставив запрос с пользователем. Но тогда, чтобы очистить карту, мне понадобится хук, который может удалить запись карты после отправки ответа на этот запрос.

0 ответов

Другие вопросы по тегам