Standard verified email change
A signed-in user replaces an old mailbox with a new one after proving control of the new address.
Better Auth · Module
Better Auth’s changeEmail feature lets a user request a new email address. Enable it server-side, configure verification delivery, and start the flow with the client’s changeEmail method.
Enable the feature on the server and configure email verification delivery. The client then submits the replacement address; Better Auth sends verification to that address and changes the account only after verification, unless the documented unverified-current-email option permits an immediate update.
await authClient.changeEmail({ newEmail, callbackURL });| Name | Type | Description |
|---|---|---|
newEmail | string | Replacement email address submitted for the change request. |
callbackURL | string | Destination to use after the verification step completes. |
The page documents the client call as an asynchronous request but does not specify a return shape.
user configuration before exposing the client flow.enabled inside user.changeEmail.import { authClient } from "@/lib/auth-client";
await authClient.changeEmail({
newEmail: "new-email@email.com",
callbackURL: "/dashboard",
});Starts the email-change flow and redirects to the dashboard after verification.
A signed-in user replaces an old mailbox with a new one after proving control of the new address.
An application requires approval from the existing mailbox before sending verification to the replacement address.
A system permits an immediate update when the existing address has not been verified.
Enable user.changeEmail.enabled on the server, configure emailVerification.sendVerificationEmail, and call authClient.changeEmail with newEmail. The address changes after the new address is verified.
Follow-up: How can the current address approve the request first? Provide sendChangeEmailConfirmation; it sends confirmation to the current email before sending verification to the new one.
The default verification message goes to the new email address. The account email is updated only after the recipient verifies that address.
Follow-up: What option changes behavior for an unverified current address? Set updateEmailWithoutVerification to true to allow an immediate update in that documented case.
The client method accepts newEmail and may accept callbackURL, which is used for redirecting after verification. The method initiates the process rather than directly changing the stored address.
Follow-up: What security enhancement can be added before the new-address message? Implement sendChangeEmailConfirmation so the current address must approve the change.
user.changeEmail.enableduser.changeEmail.updateEmailWithoutVerificationemailVerification.sendVerificationEmailsendChangeEmailConfirmationemailOtp.requestEmailChange