使用Golang中的杜松子酒软件包来表示特定路线的中间件



我为成功运行的路线制作了一个middleware,但是有一个小问题,它将适用于所有路线,包括signuplogin。我想社交signuplogin路线,所有用户将访问这两条路线。以下是我使用的代码: -

路由

/*Signup Route */
Route{"SaveUser", "POST", "/signup", controller.SaveUser},
/*Login Route*/
Route{"LoginUser", "POST", "/login", controller.Login},
/* All Customers Routes */
Route{"SaveCustomers", "POST", "/customer", controller.SaveCustomers},
Route{"GetCustomers", "GET", "/customer", controller.GetCustomers},
Route{"GetCustomer", "GET", "/customer/:id", controller.GetCustomer},
Route{"UpdateCustomers", "PUT", "/customer/:id", controller.UpdateCustomers},
func NewRouter() {
  router := gin.Default()
  router.Use(require("./login"))
  router.Use(JWTAuthMiddleware())
  v1 := router.Group("/api/v1")
  for _, route := range routes {
    switch route.Method {
    case "GET":
        v1.GET(route.Pattern, route.HandlerFunc)
    case "POST":
        v1.POST(route.Pattern, route.HandlerFunc)
    case "PUT":
        v1.PUT(route.Pattern, route.HandlerFunc)
    case "DELETE":
        v1.DELETE(route.Pattern, route.HandlerFunc)
    default:
        v1.GET(route.Pattern, func(c *gin.Context) {
            c.JSON(200, gin.H{
                "result": "Specify a valid http method with this route.",
            })
        })
    }
 }
 router.Run(":8080")
}
func JWTAuthMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
    controller.ValidateToken(c)
    c.Next()
  }
}

当我击中URL /login时,登录API将运行,并检查用户是否已授权。但是中间软件代码也将用于注册和登录。我将如何社交登录API和注册API。我搜索了Google,但是我发现我不明白的东西可以帮助我。预先感谢您。

来自:https://github.com/gin-gin-gonic/gin#using-middleware

// Per route middleware, you can add as many as you desire.
r.GET("/benchmark", MyBenchLoggerMiddleware(), benchEndpoint)

https://github.com/gin-gin-gonic/gin#using-middleware,显示了如何使用授权中间件的特定URL。

最新更新