From e1530c24aaab2f8e460629cb9cacb5f83725c1be Mon Sep 17 00:00:00 2001 From: joel Date: Wed, 21 Feb 2024 08:36:03 +0800 Subject: [PATCH] feat: re-revert refactor on mfa code --- internal/api/token.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/api/token.go b/internal/api/token.go index 045a2e067..7323d83ce 100644 --- a/internal/api/token.go +++ b/internal/api/token.go @@ -430,9 +430,18 @@ func (a *API) updateMFASessionAndClaims(r *http.Request, tx *storage.Connection, var tokenString string var expiresAt int64 var refreshToken *models.RefreshToken - session := getSession(ctx) - err := tx.Transaction(func(tx *storage.Connection) error { - if terr := models.AddClaimToSession(tx, session.ID, authenticationMethod); terr != nil { + currentClaims := getClaims(ctx) + sessionId, err := uuid.FromString(currentClaims.SessionId) + if err != nil { + return nil, internalServerError("Cannot read SessionId claim as UUID").WithInternalError(err) + } + + err = tx.Transaction(func(tx *storage.Connection) error { + if terr := models.AddClaimToSession(tx, sessionId, authenticationMethod); terr != nil { + return terr + } + session, terr := models.FindSessionByID(tx, sessionId, false) + if terr != nil { return terr } currentToken, terr := models.FindTokenBySessionID(tx, &session.ID)