Node.js 如何做邮箱验证(结合 nodemailer)

2016-09-03 13:02:11 +08:00
 NARUTOzp

    要做邮箱验证,就是在注册的时候除了用户名密码外还需要输入一个有效邮箱,然后通过 nodemailer 发送一份验证邮件到填写的邮箱。收到邮件后点击邮件里的链接则注册成功,将字段写入数据库。
    小的想请问 v 友们,这个发送去注册邮箱里的邮件内容怎么写?如何写才能做到他那边一点验证的链接就通过验证然后将字段写入数据库呢。= =

5747 次点击
所在节点    程序员
13 条回复
cccRaim
2016-09-03 13:04:56 +08:00
随机字符串就可以了
aeshfawre
2016-09-03 13:07:03 +08:00
注册完之后——>随机生成一个字符串-> 在 redis 中存储这个字符串对应的用户 id -> 发送包含这个字符串的链接给邮箱 ->用户点击链接,后台根据这个字符串,获取对应用户 id ->设置这个用户 id 状态为激活状态。
NARUTOzp
2016-09-03 13:07:42 +08:00
@cccRaim 额,何解?能请您稍微说具体点么,小的不是很明白。 0_0
aeshfawre
2016-09-03 13:11:13 +08:00
另一种模式就是:
注册的过程中 -> 随机生成一个字符串 -> 在 redis 中设置当前注册的 id 对应这个字符串 -> 发送邮件,提示激活码为这个字符串 ->显示一个网页,提示需要输入邮箱接收到的字符串 -> 用户去邮箱中复制出这个字符串,粘贴到网页中 -> 提交字符串 提示注册成功,否则失败。
NARUTOzp
2016-09-03 13:12:21 +08:00
@aeshfawre 哦,这个是通过注册完再激活来处理,谢谢,这个好。那如果是希望在对方点击验证链接前不能完成注册那应该怎么做呢。就是会卡在注册界面那种,验证后才能进入首页。= =
NARUTOzp
2016-09-03 13:12:56 +08:00
@aeshfawre 哦,好的,非常感谢。
NARUTOzp
2016-09-03 13:23:05 +08:00
@aeshfawre 额,小的用的是 MongoDB ,在没验证时注册是失败的,就是没验证的话不会有记录存入数据库,就没有_id 了,点击验证链接才将记录存入,这个肿么破呢.0_0||
aeshfawre
2016-09-03 13:35:44 +08:00
这个。。。
注册过程中,用户输入的信息可以临时存放在 mongodb 中撒,最好是 redis 。
根据 cookie 对应这个临时存放的用户信息,不需要啥 id 啊,只需要将这个激活码存放在这用户信息里面。
他提交的激活码与你临时存放的激活是不是对应,不对应就注册失败,不入库。符合就入库,根本就不需要啥用户 id 的。
gulu
2016-09-03 13:42:34 +08:00
那就在注册的第一步只要用户填写邮箱,然后发送一枚 token 作为 parameter 的 URL 到用户邮箱,用户再点击这个 URL 进入后续的注册操作。

用户点击这个 URL 注册的时候需要验证他再次填写的邮箱和第一步填写的邮箱一致,不然不予以注册通过。

这枚 Token 可以存在服务端的 redis 中, key , value 就设置成 token, email ,设定比如 15 分钟的期限。

不知道这样可以不可以😁
NARUTOzp
2016-09-03 13:47:29 +08:00
@aeshfawre 恩,好,我去试试。辛苦啦^_^
NARUTOzp
2016-09-03 13:48:03 +08:00
@gulu 额,可以试试。^_^
qfdk
2016-09-03 17:34:44 +08:00
很简单嘛 数据库 用户名加个字段 1 或者 0 判断激活没有 然后随机字符串无所谓 直接 md5 他的信箱就好了 看我多机智。点击了 update 一下数据库
NARUTOzp
2016-09-03 18:26:20 +08:00
@qfdk 如此机智,我竟无言以对=_=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303642

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX