diff --git a/Makefile b/Makefile index a77d60f..0cf4698 100644 --- a/Makefile +++ b/Makefile @@ -22,4 +22,4 @@ deps: build: @echo "Building binary..." @bash ./script/build.sh $(build_args) - @echo "Binary built." + @echo "Binary built successfully." diff --git a/cmd/main.go b/cmd/main.go index 25d4954..7f9ca84 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -4,9 +4,11 @@ import ( "context" "fmt" "go-gin/cmd/srv/controller" + "go-gin/pkg/mygin" "go-gin/pkg/utils" "go-gin/service/singleton" + "github.com/gin-gonic/gin" "github.com/ory/graceful" flag "github.com/spf13/pflag" ) @@ -62,6 +64,10 @@ func main() { fmt.Printf(" - %-7s: %s\n", "Network", utils.Colorize(utils.ColorGreen, fmt.Sprintf("http://%s:%d", ip, port))) } } + + fmt.Println() + fmt.Println("Server available routes:") + mygin.PrintRoute(srv.Handler.(*gin.Engine)) fmt.Println() } diff --git a/cmd/srv/controller/common_page.go b/cmd/srv/controller/common_page.go index c769675..8266477 100644 --- a/cmd/srv/controller/common_page.go +++ b/cmd/srv/controller/common_page.go @@ -22,7 +22,5 @@ func (p *commonPage) home(c *gin.Context) { } func (p *commonPage) ping(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{ - "message": "pong", - }) + c.Writer.WriteString("pong") } diff --git a/internal/gogin/authorize_handler.go b/internal/gogin/authorize_handler.go index 2e3259b..65b329e 100644 --- a/internal/gogin/authorize_handler.go +++ b/internal/gogin/authorize_handler.go @@ -58,20 +58,21 @@ func Authorize(opt AuthorizeOption) gin.HandlerFunc { token = strings.TrimSpace(token) if token != "" { _, isLogin = getUserFromToken(token, c) - if !isLogin { - refreshToken, _ := c.Cookie(singleton.Conf.JWT.RefreshTokenCookieName) - if refreshToken != "" { - newToken, err := auth.RefreshToken(refreshToken, singleton.Conf) - if err != nil { - singleton.Log.Err(err).Msgf("RefreshToken: %v", err) - ShowErrorPage(c, unauthorizedErr, opt.IsPage) - return - } - - UserLoginSuccess(c, newToken) - token = newToken.AccessToken - _, isLogin = getUserFromToken(token, c) + } + + if !isLogin { + refreshToken, err := c.Cookie(singleton.Conf.JWT.RefreshTokenCookieName) + if refreshToken != "" && err == nil { + newToken, err := auth.RefreshToken(refreshToken, singleton.Conf) + if err != nil { + singleton.Log.Err(err).Msgf("RefreshToken: %v", err) + ShowErrorPage(c, unauthorizedErr, opt.IsPage) + return } + + UserLoginSuccess(c, newToken) + token = newToken.AccessToken + _, isLogin = getUserFromToken(token, c) } } diff --git a/pkg/mygin/gin.go b/pkg/mygin/gin.go index 5ca42e8..ca7b566 100644 --- a/pkg/mygin/gin.go +++ b/pkg/mygin/gin.go @@ -2,6 +2,7 @@ package mygin import ( "fmt" + "go-gin/pkg/utils" "net/http" "strings" @@ -64,3 +65,10 @@ func BindForm(c *gin.Context, isForm bool, form interface{}) error { return c.ShouldBindJSON(form) } } + +func PrintRoute(r *gin.Engine) { + routes := r.Routes() + for _, route := range routes { + fmt.Printf(" - Route Path: %s, Method: %s\n", utils.Colorize(utils.ColorGreen, route.Path), utils.Colorize(utils.ColorGreen, route.Method)) + } +} diff --git a/pkg/mygin/handler.go b/pkg/mygin/handlers.go similarity index 100% rename from pkg/mygin/handler.go rename to pkg/mygin/handlers.go