Skip to content

Commit b759bd7

Browse files
authored
fix: check verificationRequest.Identifier for login method in VerifyEmail (#495)
* fix: check verificationRequest.Identifier for login method in VerifyEmail The loginMethod variable was compared to VerificationTypeMagicLinkLogin right after being set to AuthRecipeMethodBasicAuth, making the condition always false. Now checks verificationRequest.Identifier instead. Fixes #484 * test: add test for verify email login method detection
1 parent 841eb62 commit b759bd7

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

internal/graphql/verify_email.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func (g *graphqlProvider) VerifyEmail(ctx context.Context, params *model.VerifyE
140140
}
141141

142142
loginMethod := constants.AuthRecipeMethodBasicAuth
143-
if loginMethod == constants.VerificationTypeMagicLinkLogin {
143+
if verificationRequest.Identifier == constants.VerificationTypeMagicLinkLogin {
144144
loginMethod = constants.AuthRecipeMethodMagicLinkLogin
145145
}
146146

internal/integration_tests/verify_email_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,30 @@ func TestVerifyEmail(t *testing.T) {
4747
assert.Nil(t, verificationRes)
4848
})
4949

50+
t.Run("should verify email and use correct login method for basic auth", func(t *testing.T) {
51+
basicAuthEmail := "verify_email_basic_" + uuid.New().String() + "@authorizer.dev"
52+
_, err := ts.GraphQLProvider.SignUp(ctx, &model.SignUpRequest{
53+
Email: &basicAuthEmail,
54+
Password: password,
55+
ConfirmPassword: password,
56+
})
57+
assert.NoError(t, err)
58+
59+
vreq, err := ts.StorageProvider.GetVerificationRequestByEmail(ctx, basicAuthEmail, constants.VerificationTypeBasicAuthSignup)
60+
assert.NoError(t, err)
61+
assert.NotNil(t, vreq)
62+
// Identifier should be basic_auth_signup, not magic_link_login
63+
assert.Equal(t, constants.VerificationTypeBasicAuthSignup, vreq.Identifier)
64+
65+
verifyRes, err := ts.GraphQLProvider.VerifyEmail(ctx, &model.VerifyEmailRequest{
66+
Token: vreq.Token,
67+
})
68+
assert.NoError(t, err)
69+
assert.NotNil(t, verifyRes)
70+
assert.NotEmpty(t, verifyRes.AccessToken)
71+
assert.NotNil(t, verifyRes.User)
72+
assert.True(t, verifyRes.User.EmailVerified)
73+
})
5074
t.Run("should fail for revoked user", func(t *testing.T) {
5175
revokedEmail := "verify_email_revoked_" + uuid.New().String() + "@authorizer.dev"
5276
revokedSignupReq := &model.SignUpRequest{

0 commit comments

Comments
 (0)