Beta
The Neon Auth with Better Auth is in Beta. Share your feedback on Discord or via the Neon Console.
Manage user profiles and account settings after users sign in. This guide covers:
- Updating profile information (name, image, phone number)
- Changing passwords securely
- Changing email addresses with verification
- Deleting user accounts
Update user profile
Update user profile fields like name, image, or phone number using updateUser():
import { authClient } from './auth';
const handleUpdateProfile = async (e) => {
e.preventDefault();
setMessage('');
try {
const { data, error } = await authClient.updateUser({
name: 'New Name',
});
if (error) throw error;
// Refresh session to get updated user data
const sessionResult = await authClient.getSession();
if (sessionResult.data?.session) {
setUser(sessionResult.data.session.user);
setMessage('Profile updated successfully!');
}
} catch (error) {
setMessage(error?.message || 'Update failed');
}
};Available profile fields
You can update these fields with updateUser():
name(string) - User's display name
note
Email address changes are not currently supported. To reset a forgotten password, see Password Reset.
Change password
Change a user's password while they are logged in using changePassword(). This requires the current password for security:
import { authClient } from './auth';
const handleChangePassword = async (e) => {
e.preventDefault();
setMessage('');
try {
const { data, error } = await authClient.changePassword({
newPassword: 'new-secure-password',
currentPassword: 'current-password',
});
if (error) throw error;
setMessage('Password changed successfully!');
} catch (error) {
setMessage(error?.message || 'Password change failed');
}
};Revoke other sessions
Optionally sign out from all other devices when changing the password:
const { data, error } = await authClient.changePassword({
newPassword: 'new-secure-password',
currentPassword: 'current-password',
revokeOtherSessions: true, // Signs out all other devices
});note
If a user forgot their password, use the password reset flow (requestPasswordReset() and resetPassword()) instead. See Password Reset.
Refresh user data
After updating profile information, refresh the session to get the latest user data:
import { authClient } from './auth';
const refreshUser = async () => {
const { data } = await authClient.getSession();
if (data?.session) {
setUser(data.session.user);
}
};Call refreshUser() after successful updateUser() calls to ensure your UI displays the latest information.
Password Reset
Reset forgotten passwords
Email Verification
Verify email addresses
Authentication Flow
Understand the auth flow
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.








