13

我有带有单个电子邮件字段的注册表单。当用户输入其电子邮件时,我需要发送一个注册链接。

我看过这个带有注册表单的 Node.js 示例。但它只有 sendWelcome 功能。

是否有发送注册电子邮件的 Node.js 应用程序示例?

4

1 回答 1

26

到目前为止我还没有看到这样的例子,但你的第二个问题是什么?您提供的示例很好地展示了如何发送电子邮件。另一种选择是使用这个包:

github.com/andris9/Nodemailer

这似乎也很好地记录了如何发送电子邮件。

因此,我假设您想知道如何设置注册系统。一种方法是创建一个用于注册用户的表,该表具有e-mailtoken列。E-mail很明显,token是一个随机生成的字符串(例如使用节点的crypto.randomBytes方法),它将作为链接的一部分发送给用户。输入链接后,您在数据库中搜索此令牌,如果找到,则继续注册。

需要注意的两件事:创建令牌时,请确保它不存在于数据库中。第二:使用valid_until列删除超过几个小时的标记是一个好习惯。

更新:

不幸的是,节点的 base64 导出不是 url 安全的。因此,这是获取我发现的安全令牌的最简单方法:

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

也许有人会想出更好的解决方案。

于 2012-01-12T22:00:38.510 回答