fixes
Build And Push Image / docker (push) Successful in 4m21s
Details
Build And Push Image / docker (push) Successful in 4m21s
Details
This commit is contained in:
parent
b49148cf95
commit
34fdf820fe
|
|
@ -3,8 +3,11 @@ export default defineEventHandler(async (event) => {
|
||||||
const { token } = getQuery(event);
|
const { token } = getQuery(event);
|
||||||
|
|
||||||
if (!token || typeof token !== 'string') {
|
if (!token || typeof token !== 'string') {
|
||||||
console.log('[verify-email] Missing or invalid token, redirecting to expired page');
|
console.log('[verify-email] Missing or invalid token');
|
||||||
return sendRedirect(event, '/auth/verify-expired?reason=invalid', 302);
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: 'Invalid or missing verification token'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('[verify-email] Processing verification token...');
|
console.log('[verify-email] Processing verification token...');
|
||||||
|
|
@ -51,36 +54,50 @@ export default defineEventHandler(async (event) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build success redirect URL with query parameters
|
// Return JSON response with email and success status
|
||||||
const successUrl = new URL('/auth/verify-success', 'https://portal.monacousa.org');
|
const responseData = {
|
||||||
successUrl.searchParams.set('email', email);
|
success: true,
|
||||||
|
message: partialSuccess
|
||||||
if (partialSuccess && keycloakError) {
|
? 'Email verified with partial success. You may experience minor account access issues.'
|
||||||
successUrl.searchParams.set('warning', 'partial');
|
: 'Email verified successfully',
|
||||||
console.log('[verify-email] Redirecting to success page with partial warning');
|
data: {
|
||||||
} else {
|
email,
|
||||||
console.log('[verify-email] Redirecting to success page - verification complete');
|
partialSuccess,
|
||||||
}
|
keycloakError: partialSuccess ? keycloakError : null
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Redirect to success page instead of returning JSON
|
console.log('[verify-email] Returning JSON response:', responseData);
|
||||||
return sendRedirect(event, successUrl.pathname + successUrl.search, 302);
|
return responseData;
|
||||||
|
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('[verify-email] Verification failed:', error.message);
|
console.error('[verify-email] Verification failed:', error.message);
|
||||||
|
|
||||||
// Redirect to appropriate error page instead of throwing errors
|
// Return appropriate error responses as JSON
|
||||||
if (error.message?.includes('expired')) {
|
if (error.message?.includes('expired')) {
|
||||||
console.log('[verify-email] Token expired, redirecting to expired page');
|
console.log('[verify-email] Token expired');
|
||||||
return sendRedirect(event, '/auth/verify-expired?reason=expired', 302);
|
throw createError({
|
||||||
|
statusCode: 410,
|
||||||
|
statusMessage: 'Verification token has expired'
|
||||||
|
});
|
||||||
} else if (error.message?.includes('already used')) {
|
} else if (error.message?.includes('already used')) {
|
||||||
console.log('[verify-email] Token already used, redirecting to expired page');
|
console.log('[verify-email] Token already used');
|
||||||
return sendRedirect(event, '/auth/verify-expired?reason=used', 302);
|
throw createError({
|
||||||
|
statusCode: 409,
|
||||||
|
statusMessage: 'Verification token has already been used'
|
||||||
|
});
|
||||||
} else if (error.message?.includes('not found')) {
|
} else if (error.message?.includes('not found')) {
|
||||||
console.log('[verify-email] Token not found, redirecting to expired page');
|
console.log('[verify-email] Token not found');
|
||||||
return sendRedirect(event, '/auth/verify-expired?reason=invalid', 302);
|
throw createError({
|
||||||
|
statusCode: 404,
|
||||||
|
statusMessage: 'Verification token not found or invalid'
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
console.log('[verify-email] Generic verification error, redirecting to expired page');
|
console.log('[verify-email] Generic verification error');
|
||||||
return sendRedirect(event, '/auth/verify-expired?reason=invalid', 302);
|
throw createError({
|
||||||
|
statusCode: 400,
|
||||||
|
statusMessage: error.message || 'Email verification failed'
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue