You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
useSendPasswordResetEmail hook returns incorrect success status for unregistered emails
Issue Type: Bug
Description:
When using the useSendPasswordResetEmail hook, I noticed that it does not return an error when the email provided is not registered. Moreover, it also returns the success boolean as true even when the email is not associated with any user account.
Reproduction Steps:
Use the useSendPasswordResetEmail hook in a component.
Provide an unregistered email to the sendPasswordResetEmail function.
Observe that error remains undefined and success returns as true.
Expected Behavior:
For unregistered emails, success should be false and an appropriate error should be returned indicating that the email is not registered.
Actual Behavior:
The success is returned as true and no error is returned, misleading the user.
Code Snippet:
importReact,{useState,useEffect}from'react';import{toast}from'react-toastify';import{useSendPasswordResetEmail}from'react-firebase-hooks/auth';import{auth}from'@/firebase/firebase';typeForgotPasswordProps={};constForgotPassword: React.FC<ForgotPasswordProps> = () =>{const[email,setEmail]=useState('');const[sendPasswordResetEmail,sending,error]=useSendPasswordResetEmail(auth);consthandleResetPassword=async(e: React.FormEvent<HTMLFormElement>)=>{e.preventDefault();constsuccess=awaitsendPasswordResetEmail(email);console.log('success',success);// BUG: returns success as true even if email is not associated with an accountif(success)toast.success("If the provided email address is associated with an account, a password reset email will be sent.");};useEffect(()=>{if(error){console.log(error);toast.error(error.message);}},[error]);}
If it's an intended behavior to not differentiate between registered and unregistered emails (to prevent email enumeration attacks), then the documentation should clearly mention this. Otherwise, this is misleading for developers using the hook.
Please let me know if you need further information or if there's a workaround available.
The text was updated successfully, but these errors were encountered:
@Rathetsu@zhenyuWang that's because the protection mail enumeration is activated, it is active by default in projects started in September 2023 Read about this
useSendPasswordResetEmail
hook returns incorrect success status for unregistered emailsIssue Type: Bug
Description:
When using the
useSendPasswordResetEmail
hook, I noticed that it does not return anerror
when the email provided is not registered. Moreover, it also returns thesuccess
boolean astrue
even when the email is not associated with any user account.Reproduction Steps:
useSendPasswordResetEmail
hook in a component.sendPasswordResetEmail
function.error
remains undefined andsuccess
returns astrue
.Expected Behavior:
For unregistered emails,
success
should befalse
and an appropriateerror
should be returned indicating that the email is not registered.Actual Behavior:
The
success
is returned astrue
and no error is returned, misleading the user.Code Snippet:
Environment:
Additional Information:
If it's an intended behavior to not differentiate between registered and unregistered emails (to prevent email enumeration attacks), then the documentation should clearly mention this. Otherwise, this is misleading for developers using the hook.
Please let me know if you need further information or if there's a workaround available.
The text was updated successfully, but these errors were encountered: