Golang-在http结构中存储用户ID

Golang-在http结构中存储用户ID,go,Go,我需要将userID存储在w http.ResponseWriter或req*http.Request中的某个位置,以便在我的处理程序中访问它们。 我该怎么做? 这是我需要的一个小演示: func test(w http.ResponseWriter, r *http.Request){ userID := w.UserID // or something like this } 同样,此值必须存储在这些变量中,以便我可以在所有http处理程序中访问它。 非常感谢您抽出时间您可以将ht

我需要将userID存储在w http.ResponseWriter或req*http.Request中的某个位置,以便在我的处理程序中访问它们。
我该怎么做?
这是我需要的一个小演示:

func test(w http.ResponseWriter, r *http.Request){
    userID := w.UserID // or something like this
}
同样,此值必须存储在这些变量中,以便我可以在所有http处理程序中访问它。

非常感谢您抽出时间

您可以将http.ResponseWriter嵌入到自己的结构中并添加额外的字段

type ResponseWriter struct{
    http.ResponseWriter
    UserID int
}
现在使用ResponseWriter而不是http.ResponseWriter


我希望这有帮助

这似乎更多的是会话管理问题,而不是围棋问题。处理此问题的常用方法是在用户进行身份验证后设置安全会话cookie,然后您可以使用该会话从应用程序中的任何位置获取用户。请注意,如果您使用此逐字记录,您的响应编写器将不再是
http.jacker
http.Flusher
http.CloseNotifier
。最好使用另一种方法来存储状态,例如
golang.org/x/net/context
包。除了@JimB的注释,这也是一个简单的请求上下文实现。感谢大家的回答,我最终使用了另一种方法,但你的回答对我帮助很大,我对所有的答案和评论都投了赞成票。