package utils import ( "GinTutorial/config" "time" "github.com/golang-jwt/jwt/v5" "golang.org/x/crypto/bcrypt" ) func HashPassword(password string) (string, error) { hash, err := bcrypt.GenerateFromPassword([]byte(password), config.AppConfig.Bcrypt.Cost) return string(hash), err } func GenerateJWT(username string) (string, error) { token := jwt.NewWithClaims(jwt.SigningMethodHS512, jwt.MapClaims{ "username": username, "exp": time.Now().Add(time.Hour * 72).Unix(), }) signedToken, err := token.SignedString([]byte("secret")) return "Bearer " + signedToken, err } func CheckPassword(password, hash string) bool { err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password)) return err == nil }