From 245a5b5e1b7ac67eea2ae5507de744bf529791a6 Mon Sep 17 00:00:00 2001 From: Lakhan Samani Date: Sat, 17 Jul 2021 22:39:50 +0530 Subject: [PATCH] Resolves #22 --- server/db/user.go | 15 --------------- server/handlers/oauthCallbackHandler.go | 7 ++----- server/resolvers/{singup.go => signup.go} | 6 ++++-- server/utils/hashPassword.go | 12 ++++++++++++ 4 files changed, 18 insertions(+), 22 deletions(-) rename server/resolvers/{singup.go => signup.go} (94%) create mode 100644 server/utils/hashPassword.go diff --git a/server/db/user.go b/server/db/user.go index 7394691..6929290 100644 --- a/server/db/user.go +++ b/server/db/user.go @@ -3,8 +3,6 @@ package db import ( "log" - "golang.org/x/crypto/bcrypt" - "gorm.io/gorm" "gorm.io/gorm/clause" ) @@ -21,17 +19,6 @@ type User struct { Image string } -func (user *User) BeforeSave(tx *gorm.DB) error { - // Modify current operation through tx.Statement, e.g: - if user.Password != "" { - if pw, err := bcrypt.GenerateFromPassword([]byte(user.Password), bcrypt.DefaultCost); err == nil { - tx.Statement.SetColumn("Password", string(pw)) - } - } - - return nil -} - // SaveUser function to add user func (mgr *manager) SaveUser(user User) (User, error) { result := mgr.db.Clauses(clause.OnConflict{UpdateAll: true, Columns: []clause.Column{{Name: "email"}}}).Create(&user) @@ -40,8 +27,6 @@ func (mgr *manager) SaveUser(user User) (User, error) { log.Println(result.Error) return user, result.Error } - log.Println("===== USER ID =====") - log.Println(user.ID) return user, nil } diff --git a/server/handlers/oauthCallbackHandler.go b/server/handlers/oauthCallbackHandler.go index b31a4a3..a5176aa 100644 --- a/server/handlers/oauthCallbackHandler.go +++ b/server/handlers/oauthCallbackHandler.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "io/ioutil" - "log" "net/http" "strings" "time" @@ -73,16 +72,15 @@ func processGoogleUserInfo(state string, code string, c *gin.Context) error { Email: userRawData["email"], EmailVerifiedAt: time.Now().Unix(), SignupMethod: signupMethod, + Password: existingUser.Password, } user, _ = db.Mgr.SaveUser(user) } - log.Println("====== USER FROM OAUTH HANDLER =====") - log.Println(user.ID) userIdStr := fmt.Sprintf("%d", user.ID) - log.Println("str id: ", userIdStr) + refreshToken, _, _ := utils.CreateAuthToken(utils.UserAuthInfo{ ID: userIdStr, Email: user.Email, @@ -98,7 +96,6 @@ func processGoogleUserInfo(state string, code string, c *gin.Context) error { } func HandleOAuthCallback(provider enum.OAuthProvider) gin.HandlerFunc { - log.Println("here...") return func(c *gin.Context) { if provider == enum.GoogleProvider { err := processGoogleUserInfo(c.Request.FormValue("state"), c.Request.FormValue("code"), c) diff --git a/server/resolvers/singup.go b/server/resolvers/signup.go similarity index 94% rename from server/resolvers/singup.go rename to server/resolvers/signup.go index e6c9045..850ad6d 100644 --- a/server/resolvers/singup.go +++ b/server/resolvers/signup.go @@ -36,10 +36,12 @@ func Signup(ctx context.Context, params model.SignUpInput) (*model.SignUpRespons return res, errors.New(`You have already signed up. Please login`) } user := db.User{ - Email: params.Email, - Password: params.Password, + Email: params.Email, } + password, _ := utils.HashPassword(params.Password) + user.Password = password + if params.FirstName != nil { user.FirstName = *params.FirstName } diff --git a/server/utils/hashPassword.go b/server/utils/hashPassword.go new file mode 100644 index 0000000..049b4d6 --- /dev/null +++ b/server/utils/hashPassword.go @@ -0,0 +1,12 @@ +package utils + +import "golang.org/x/crypto/bcrypt" + +func HashPassword(password string) (string, error) { + pw, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) + if err != nil { + return "", err + } + + return string(pw), nil +}