Нет, это слишком много кода (проверка прав, генерация пароля, проверки (включая можно или нельзя использовать неуникальные емейлы), емейл-уведомления, события-плагины и т.п.). Не надо так :) Вот я привел вполне рабочий код. Это если программно. А во фронте традиционно используется компонент Login (на самом деле у нас не всегда), там совсем другие механизмы используются.