I'm working on a profile management form for a site with public registration enabled. I'd like users to be able to change their email address. I've got it working as Craft intended -- they enter their email + current password, a "Verify new email address" email is triggered, and following the verification link updates their email.

The UX wall I'm hitting is that a) the user is logged out when click the verification link and b) they get no messaging around whether or not the email was actually changed.

I've reviewed the code and don't see any way to improve this experience. I found https://github.com/craftcms/cms/issues/1421 but the workaround in there seems heavy handed.

Has anyone come up with an elegant solution for this?

1 Answer 1


The only way I found to accomplish this was with a custom controller that essentially overrode actionVerifyEmail and _processTokenRequest from UsersController. (With a hook into email.onBeforeSendEmail to rewrite the verification {{link}} to use the custom controller action). It's fragile, but it works.

I've created a feature request to smooth out this experience: https://github.com/craftcms/cms/issues/1228

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.