> Have a site where the member can update their email address.
If the reason for changing the email is not to change the login details but rather the contact details. You can always create a "contactEmail" property and on registration set it equal to the email property. Then let your form update the contactEmail one.
Another way to go is to implement a specific change email flow, where you capture both the old and new email.
Send an email to the first (to verify its the actual user and not somebody hijacking their session).
Send an email to the second that both verifies they have access to the new address and supply a link to reset the password with a token that gets created after the first email has been verified.
This way, the email is changed, you guarantee they can login and the password is reset ✅