我有一个带有单个电子邮件字段的注册表单。当用户输入电子邮件时,我需要发送一个注册链接。
我看过这个Node.js的例子,它有注册表单,但它只有sendWelcome功能。
有没有Node.js应用程序发送注册电子邮件的例子?
到目前为止,我还没有看到这样的例子,但你的第二个问题是什么?您提供的示例很好地展示了如何发送电子邮件。另一种选择是使用这个包:
github.com/andris9/Nodemailer
关于如何发送电子邮件,似乎也有很好的记录。
因此,我想你想知道如何设置注册系统。实现这一点的一种方法是拥有一个用于注册用户的表,该表具有e-mail
和token
列。E-mail
是显而易见的,token
是一个随机生成的字符串(例如,使用节点的crypto.randomBytes
方法),它将作为链接的一部分发送给用户。输入链接后,您将在数据库中搜索此令牌,如果找到了,则继续注册。
需要注意的两件事是:在创建令牌时,确保它不存在于数据库中。第二:使用valid_until
列删除超过几个小时的令牌是一种很好的做法。
更新:
不幸的是,节点的base64导出不是url安全的。因此,这是获得我发现的安全令牌的最简单方法:
require('crypto').randomBytes(48, function(ex, buf) {
token = buf.toString('base64').replace(///g,'_').replace(/+/g,'-');
});
也许有人会想出一个更好的解决方案。