Активация учетной записи пользователя, подтверждение по электронной почте и приглашения с паспортом/Node.Js

Я хочу настроить 3 вещи для моей системы аутентификации пользователей, запущенной на Passport/Neo4J:

1) Ручная активация учетной записи пользователя (так, что делает администратор);

2) Создание учетной записи только для приглашений;

3) Подтверждение электронной почты перед активацией;

Мне было интересно, знаете ли вы о каких-либо простых в использовании плагинах Passport для него (я сам не нашел, но также хочу ваши рекомендации), а также - что было бы лучшим способом его реализовать (может быть, вы 'уже сделали/видели, чтобы вы могли поделиться кодом?)

Спасибо!

Ответ 1

Раскрытие: я никогда не работал с Neo4j, поэтому я не знаю специфики, но я бы выполнил это следующим образом:

Вы можете написать несколько простых запросов, которые вставляют информацию о пользователях (например, имя пользователя, пароль, адрес электронной почты и т.д.) в вашу базу данных при регистрации. Затем отправьте пользователю электронное письмо с помощью nodemailer, в котором указано, что он зарегистрирован и ожидает подтверждения.

Среди информации пользователя, которую вы сохранили, должен быть столбец, в котором вы сохраняете статус учетной записи (проверенный или не проверенный). Затем вы можете написать небольшую веб-страницу для извлечения всех учетных записей из вашей базы данных, где verified=false, и подтвердить те, которые вы хотите, установив verified в true, после чего пользователь получит электронное письмо, в котором пользователь сообщает ему что он теперь может использовать вашу службу.

Что касается регистрации только для приглашения, у меня будет специальная таблица с "регистрационными кодами", которая будет сгенерирована и вставлена ​​в эту таблицу, когда пользователь пригласит кого-то. Тот, кто был приглашен, затем получит ссылку с кодом, и после нажатия на нее сервер проверит, существует ли код в базе данных, и если это позволит пользователю создать учетную запись.

Я понимаю, что это широкий ответ, но есть много способов добиться того, что вы ищете!