Skip to content

Commit 10e9d8c

Browse files
authored
Merge pull request #460 from authorizerdev/fix-email-login
fix: email login if email not verified
2 parents 70f2de7 + 6acfd14 commit 10e9d8c

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

server/handlers/oauth_callback.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,8 @@ func OAuthCallbackHandler() gin.HandlerFunc {
112112
ctx.JSON(400, gin.H{"error": err.Error()})
113113
return
114114
}
115-
if user == nil{
115+
if user == nil {
116+
log.Debug("User is nil")
116117
ctx.JSON(
117118
500,
118119
gin.H{"error": "Something Went Wrong. Please Try Again."},

server/resolvers/login.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,19 @@ func LoginResolver(ctx context.Context, params model.LoginInput) (*model.AuthRes
129129
log.Debug("User email is not verified and email service is not enabled")
130130
return res, fmt.Errorf(`email not verified`)
131131
} else {
132+
if vreq, err := db.Provider.GetVerificationRequestByEmail(ctx, email, constants.VerificationTypeBasicAuthSignup); err == nil && vreq != nil {
133+
// if verification request exists and not expired then return
134+
// if verification request exists and expired then delete it and proceed
135+
if vreq.ExpiresAt <= time.Now().Unix() {
136+
if err := db.Provider.DeleteVerificationRequest(ctx, vreq); err != nil {
137+
log.Debug("Failed to delete verification request: ", err)
138+
// continue with the flow
139+
}
140+
} else {
141+
log.Debug("Verification request exists. Please verify email")
142+
return res, fmt.Errorf(`email verification pending`)
143+
}
144+
}
132145
expiresAt := time.Now().Add(1 * time.Minute).Unix()
133146
otpData, err := generateOTP(expiresAt)
134147
if err != nil {
@@ -152,7 +165,7 @@ func LoginResolver(ctx context.Context, params model.LoginInput) (*model.AuthRes
152165
}()
153166
return &model.AuthResponse{
154167
Message: "Please check email inbox for the OTP",
155-
ShouldShowEmailOtpScreen: refs.NewBoolRef(isMobileLogin),
168+
ShouldShowEmailOtpScreen: refs.NewBoolRef(isEmailLogin),
156169
}, nil
157170
}
158171
}

0 commit comments

Comments
 (0)