Передача данных с запросом
Скажем, у нас есть некоторое промежуточное программное обеспечение для аутентификации:
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, я могу просто прикрепить пользователя к объекту запроса. Есть ли способ сделать это с Голангом?
Единственный способ узнать, как это сделать, - создать карту, сопоставив запрос с пользователем. Но тогда, чтобы очистить карту, мне понадобится хук, который может удалить запись карты после отправки ответа на этот запрос.