I have a user.save route (below) in my Golang API that can be used to create and update a user depending on whether an id was provided in the request object. The route uses the auth middleware which other routes do too.
api.POST("/user.save", auth(), user.Save())
api.POST("/user.somethingElse", auth(), user.SomethingElse())
Here is my middleware:
func auth() gin.HandlerFunc {
return func(c *gin.Context) {
//I would like to know here if user.save was the route called
//do authy stuff
}
}
I'm thinking that if I can detect in the auth middleware whether the user.save route was called I can then check to see if an id was included and decide whether to continue or return.
You could check the url from the auth handler. The actual request is on the context, so it's as easy as:
if c.Request.URL.Path == "/user.save" {
// Do your thing
}
Another solution is to parameterize your auth middleware, something like this:
api.POST("/user.save", auth(true), user.Save())
api.POST("/user.somethingElse", auth(false), user.SomethingElse())
func auth(isUserSave bool) gin.HandlerFunc {
return func(c *gin.Context) {
if isUserSave {
// Do your thing
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With