Przykład oprogramowania pośredniego gin

func Auth() gin.HandlerFunc {

	return gin.HandlerFunc(func(ctx *gin.Context) {
		SecretPublicKey := utils.GodotEnv("JWT_SECRET")
		token, err := utils.Verify(ctx, SecretPublicKey)

		response := UnathorizatedResponse{
			Status:  "Unathorizated",
			Code:    http.StatusUnauthorized,
			Method:  ctx.Request.Method,
			Message: "accessToken invalid or expired",
		}

		if err != nil {
			ctx.JSON(http.StatusUnauthorized, response)
		} else {
			// global value result
			ctx.Set("user", token.Claims)
			// return to next method if token is exist
			ctx.Next()
		}
	})
}
Restu Wahyu Saputra