Node.js - Отправить электронное письмо при регистрации

У меня есть форма регистрации с единственным полем электронной почты. Когда пользователь вводит свой адрес электронной почты, мне нужно отправить ссылку регистрации.

Я видел этот Node.js пример с формой регистрации. Но у него есть функция sendWelcome.

Есть ли примеры приложений Node.js с отправкой зарегистрированного электронного письма?

Ответ 1

Я пока не видел такого примера, но каков ваш вторичный вопрос? Пример, который вы предоставили, показывает, как отправить электронное письмо. Другой вариант - использовать этот пакет:

https://github.com/Marak/node_mailer

Что также хорошо документировано о том, как отправлять электронные письма.

Поэтому я предполагаю, что вы хотели бы знать, как настроить систему регистрации. Один из способов сделать это - иметь таблицу для регистрации пользователей с столбцами e-mail и token. e-mail очевидно, token - это случайная строка (например, с методом node crypto.randomBytes), которая будет отправлена ​​как часть ссылки на пользователя. При вводе ссылки вы выполняете поиск в базе данных для этого токена, и если он найден, вы начинаете регистрацию.

Две вещи, которые нужно отметить: при создании токена убедитесь, что он уже не существует в db. Во-вторых: рекомендуется использовать столбец valid_until для удаления токенов старше нескольких часов.

Update:

К сожалению, node экспорт base64 не является безопасным. Таким образом, это самый простой способ получить защищенный токен, который я нашел:

require('crypto').randomBytes(48, function(ex, buf) {
    token = buf.toString('base64').replace(/\//g,'_').replace(/\+/g,'-'));
});

Возможно, кто-то придумает лучшее решение.