Skip to content

Instantly share code, notes, and snippets.

@jaytaph
Last active June 8, 2020 12:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaytaph/d09e06357dcafd8a5ddcd78b9458f79d to your computer and use it in GitHub Desktop.
Save jaytaph/d09e06357dcafd8a5ddcd78b9458f79d to your computer and use it in GitHub Desktop.
package middleware
func (*JWTToken) ServeHTTP(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
tmp := mux.Vars(r)
// tmp is nil
// Do stuff
next(w, r)
}
func main() {
mainRoutes := mux.NewRouter().StrictSlash(true)
mainRoutes.HandleFunc("/info", handler.Info).Methods("GET")
authRoutes := mux.NewRouter().StrictSlash(true)
authRoutes.HandleFunc("/user/{addr:[A-Za-z0-9]{64}}", handler.RetrieveUser).Methods("GET")
publicRouter := negroni.New()
publicRouter.Use(&middleware.Tracer{})
publicRouter.Use(&middleware.Logger{})
publicRouter.UseHandler(mainRoutes)
authRouter := negroni.New()
authRouter.Use(&middleware.Tracer{})
authRouter.Use(&middleware.Logger{})
authRouter.Use(&middleware.JWTToken{}) // Add auth
authRouter.UseHandler(authRoutes)
mainRouter := negroni.New()
mainRouter.UseHandler(authRouter)
mainRouter.UseHandler(publicRouter)
err := http.ListenAndServeTLS(host, cert, key, mainRouter)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment