Skip to content

Commit 103d501

Browse files
committed
Address 2FA PR feedback
1 parent 02b0eea commit 103d501

3 files changed

Lines changed: 8 additions & 9 deletions

File tree

controllers/accounts.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ func (ac *AccountsController) SetupPasswordFinalize2FA(w http.ResponseWriter, r
395395
return
396396
}
397397

398-
if err := ac.twoFAService.ProcessAuthRequest(registrationState, &requestData); err != nil {
398+
if err := ac.twoFAService.ProcessChallenge(registrationState, &requestData); err != nil {
399399
if errors.Is(err, util.ErrBadTOTPCode) || errors.Is(err, util.ErrBadRecoveryKey) {
400400
util.RenderErrorResponse(w, r, http.StatusUnauthorized, err)
401401
return

controllers/auth.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ func (ac *AuthController) LoginFinalize2FA(w http.ResponseWriter, r *http.Reques
460460
}
461461

462462
// Process the 2FA authentication request
463-
if err := ac.twoFAService.ProcessAuthRequest(loginState, &requestData); err != nil {
463+
if err := ac.twoFAService.ProcessChallenge(loginState, &requestData); err != nil {
464464
if errors.Is(err, util.ErrBadTOTPCode) || errors.Is(err, util.ErrBadRecoveryKey) || errors.Is(err, util.ErrTOTPCodeAlreadyUsed) {
465465
util.RenderErrorResponse(w, r, http.StatusUnauthorized, err)
466466
return
@@ -469,11 +469,6 @@ func (ac *AuthController) LoginFinalize2FA(w http.ResponseWriter, r *http.Reques
469469
return
470470
}
471471

472-
if err := ac.ds.DeleteInterimPasswordState(loginState.ID); err != nil {
473-
util.RenderErrorResponse(w, r, http.StatusInternalServerError, err)
474-
return
475-
}
476-
477472
// Create a session and return an auth token
478473
authToken, err := ac.createSessionAndToken(*loginState.AccountID, r.UserAgent())
479474
if err != nil {

services/twofa.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ func (t *TwoFAService) DisableTwoFA(accountID uuid.UUID) error {
101101
return nil
102102
}
103103

104-
// ProcessAuthRequest verifies either TOTP code or recovery key for an account
105-
func (t *TwoFAService) ProcessAuthRequest(loginState *datastore.InterimPasswordState, req *TwoFAAuthRequest) error {
104+
// ProcessChallenge verifies either TOTP code or recovery key for an account
105+
func (t *TwoFAService) ProcessChallenge(loginState *datastore.InterimPasswordState, req *TwoFAAuthRequest) error {
106106
// Verify either TOTP code or recovery key
107107
if req.TOTPCode != nil {
108108
// Verify TOTP code
@@ -119,6 +119,10 @@ func (t *TwoFAService) ProcessAuthRequest(loginState *datastore.InterimPasswordS
119119
}
120120
}
121121

122+
if err := t.ds.DeleteInterimPasswordState(loginState.ID); err != nil {
123+
return err
124+
}
125+
122126
return nil
123127
}
124128

0 commit comments

Comments
 (0)