Вопросы которые вы задаете больше относятся к backend-у (то есть к nodejs), чем к angular.
Есть решения для авторизации, например PassportJs, который позволяет помимио обычной авторизации делать авторизацию через сервисы Facebook, Google+ etc.
passportjs.org/docs
Решение довольно стандартное и часто используемое.
Если вам нужно более простое решение - попробуйте посмотреть в сторону комплексного фреймверка, например SailsJS, здесь
sailsjs.org/documentation/concepts/middleware например описаны методы авторизации. Так будет проще, потому что есть примеры.
По поводу валидации email - в базе вы добавляете поле validation_hash, в которое пишите уникальный хэш и отправляете ссылку с этим хэшем пользователю - пользователь переходит по ссылке и поле validation_hash обнуляется. Теперь вы можете проверить при следующей авторизации, если validation_hash пустое - пользователь подтвержден, если не пустое - нет.
Но сложно сказать что то определенное, потому что все зависит от требований к вашему сайту.