From b7697bc89b15733df78e63e07870b3fa081fc481 Mon Sep 17 00:00:00 2001 From: Muyao CHEN Date: Sun, 6 Oct 2024 22:07:51 +0200 Subject: [PATCH] feat: hash the user password --- go.mod | 2 +- internal/howmuch/usecase/usecase/user.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ae8a78e..58b7488 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 go.uber.org/zap v1.27.0 + golang.org/x/crypto v0.27.0 golang.org/x/net v0.25.0 ) @@ -59,7 +60,6 @@ require ( github.com/ugorji/go/codec v1.2.12 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/arch v0.8.0 // indirect - golang.org/x/crypto v0.27.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/text v0.18.0 // indirect diff --git a/internal/howmuch/usecase/usecase/user.go b/internal/howmuch/usecase/usecase/user.go index 9c52f4a..938ca40 100644 --- a/internal/howmuch/usecase/usecase/user.go +++ b/internal/howmuch/usecase/usecase/user.go @@ -32,6 +32,7 @@ import ( "git.vinchent.xyz/vinchent/howmuch/internal/howmuch/usecase/repo" "git.vinchent.xyz/vinchent/howmuch/internal/pkg/errno" "git.vinchent.xyz/vinchent/howmuch/internal/pkg/log" + "golang.org/x/crypto/bcrypt" ) var UserExisted = &errno.Errno{ @@ -57,6 +58,13 @@ func NewUserUsecase(r repo.UserRepository, d repo.DBRepository) User { } func (uuc *userUsecase) Create(ctx context.Context, u *model.User) (*model.User, error) { + // Hash the password + encrypted, err := bcrypt.GenerateFromPassword([]byte(u.Password), 12) + if err != nil { + log.ErrorLog("encrypt password error", "err", err) + return nil, errno.InternalServerErr + } + u.Password = string(encrypted) data, err := uuc.dbRepo.Transaction( ctx, func(txCtx context.Context, tx interface{}) (interface{}, error) {