package middleware // import ( // "net/http" // "github.com/alexedwards/scs/v2" // conf "zeevdiukman.com/zprox/internal/config" // ) // // import ( // // "net/http" // // ) // func Auth(c *conf.Config, sessionManager *scs.SessionManager) func(http.Handler) http.Handler { // return func(next http.Handler) http.Handler { // return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // accessToken := sessionManager.GetString(r.Context(), "access_token") // // auth.SetAuthHeader(w, accessToken) // loginPath := c.Auth.Prefix + c.Auth.LoginPath // logoutPath := c.Auth.Prefix + c.Auth.LogoutPath // if loginPath == r.URL.Path || logoutPath == r.URL.Path { // next.ServeHTTP(w, r) // return // } // tokenOk := Domain.IsAuthorizedJWT(accessToken) // if tokenOk { // next.ServeHTTP(w, r) // } else { // p := c.Auth // http.Redirect(w, r, p.Prefix+p.LoginPath, http.StatusFound) // Redirect to login // } // }) // } // } // func Domain(next http.Handler) http.Handler { // return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // // requestedPath := r.URL.Path // // a := c.Auth // // excludedPaths := []string{ // // a.Prefix + a.LoginPath, // // a.Prefix + a.CallbackPath, // // a.Prefix + a.LogoutPath, // // } // // contains := helper.IsSliceContains(excludedPaths, requestedPath) // // if !contains { // // sessionManager.Put(r.Context(), "original_path", requestedPath) // // } // next.ServeHTTP(w, r) // }) // }