3 ms·
I believe this is solved with gocraft/web: https://github.com/gocraft/web https://github.com/gocraft/web The middleware would be, per the example there: fun
by cypriss 13y ago
I believe this is solved with gocraft/web: https://github.com/gocraft/web https://github.com/gocraft/web
The middleware would be, per the example there:
func (c *YourContext) UserRequired(rw web.ResponseWriter, r *web.Request, next web.NextMiddlewareFunc) {
user := userFromSession(r) // Pretend like this is defined. It reads a session cookie and returns a *User or nil.
if user != nil {
c.User = user
next(rw, r)
} else {
rw.Header().Set("Location", "/")
rw.WriteHeader(http.StatusMovedPermanently)
// do NOT call next()
}
}
Compatibility with Handler/HandlerFunc is kept at the top level, but not at every step along the middleware chain.