Skip to content

Commit 23a1a64

Browse files
committed
fix(usecase): update ForgotPassword and Login methods to handle token generation and error logging correctly
1 parent ca8f821 commit 23a1a64

File tree

2 files changed

+25
-21
lines changed

2 files changed

+25
-21
lines changed

app/users/usecase/forgot_password.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func (us *usecase) ForgotPassword(ctx context.Context, emailForgot domain.Forgot
2828
return
2929
}
3030

31-
resetToken, err := us.jwt.GenerateAccessToken(ctx, &user, 30)
31+
resetToken, _, err := us.jwt.GenerateAccessToken(ctx, &user, 30)
3232
if err != nil {
3333
logrus.Error("us.ForgotPassword: failed to generate token", err)
3434
return

app/users/usecase/login_users.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,42 @@ import (
1010

1111
func (us *usecase) Login(ctx context.Context, userReq domain.Login) (user domain.User, token string, err error) {
1212
err = us.dbTX.StartTransaction(ctx, func(txCtx context.Context) error {
13-
if err = us.userRepo.CleanupLogoutToken(ctx); err != nil {
14-
logrus.Error("us.LoginUser: failed to cleanup token", err)
13+
user, err = us.userRepo.FindByEmail(ctx, userReq.Email)
14+
if err != nil {
15+
logrus.Error("us.LoginUser: failed to login", err)
1516
return err
1617
}
18+
19+
if err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(userReq.Password)); err != nil {
20+
logrus.Error("us.Login: invalid password")
21+
return err
22+
}
23+
24+
25+
tokenPtr, expiredTime, err := us.jwt.GenerateAccessToken(ctx, &user, 60)
26+
token = *tokenPtr
1727

18-
user, err = us.userRepo.FindByEmail(ctx, userReq.Email)
1928
if err != nil {
20-
logrus.Error("us.LoginUser: failed to login", err)
29+
logrus.Error("us.Login: failed to login. ", err)
2130
return err
2231
}
23-
return nil
24-
})
25-
if err != nil {
26-
logrus.Error("us.Login: failed to login. ", err)
27-
return
28-
}
2932

30-
if err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(userReq.Password)); err != nil {
31-
logrus.Error("us.Login: invalid password")
32-
return
33-
}
33+
if err = us.userRepo.UnactivateTokenByUser(ctx, user.ID); err != nil {
34+
logrus.Error("us.Login: failed to login. ", err)
35+
return err
36+
}
37+
if err = us.userRepo.StoreToken(ctx, token, expiredTime, user.ID); err != nil {
38+
logrus.Error("us.Login: failed to login. ", err)
39+
return err
40+
}
3441

35-
if err != nil {
36-
logrus.Error("us.Login: failed to login. ", err)
37-
return
38-
}
42+
return nil
43+
})
3944

40-
signToken, err := us.jwt.GenerateAccessToken(ctx, &user, 60)
4145
if err != nil {
4246
logrus.Error("us.Login: failed to login. ", err)
4347
return
4448
}
4549

46-
return user, *signToken, nil
50+
return user, token, nil
4751
}

0 commit comments

Comments
 (0)