为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Gin 访问中间件中的路由

使用 Gin 访问中间件中的路由

Go
杨魅力 2021-11-29 19:12:03
我有一个user.save可用于在我Golang API路线(下图)create和update取决于是否一个用户id在请求对象提供。该路由使用auth其他路由也使用的中间件。api.POST("/user.save", auth(), user.Save())api.POST("/user.somethingElse", auth(), user.SomethingElse())这是我的中间件: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    }}我在想,如果我可以在auth中间件中检测到user.save路由是否被调用,我就可以检查id是否包含了 a 并决定是继续还是返回。
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

您可以从身份验证处理程序检查 url。实际请求在上下文中,因此很简单:


if c.Request.URL.Path == "/user.save" {

    // Do your thing

}

另一种解决方案是参数化您的身份验证中间件,如下所示:


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

        }

    }

}


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信