nodejs怎么实现发送邮箱验证码功能
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"nodejs怎么实现发送邮箱验证码功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nodejs怎么实现发送邮箱验证码功能"吧!1
千家信息网最后更新 2026年11月02日nodejs怎么实现发送邮箱验证码功能
这篇文章主要讲解了"nodejs怎么实现发送邮箱验证码功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nodejs怎么实现发送邮箱验证码功能"吧!
1、使用模块:nodemailer
安装:npm install nodemailer --save
2、首先是来写一下前台注册界面,不说了,先上图。(不想看这一段的话直接跳到最后看邮箱验证码的实现)
然后实现以下以下效果(看图先),就是点击发送验证码时出现一分钟后再试的倒计时。
那现在先上代码先
(1)form表单
(2)倒计时函数
现在前台的注册页面就可以用了。
(2)发送邮箱
第一步:前往邮箱设置,以163邮箱为例,开启POP3/SMTP/IMAP,若不会,自行百度
第二步:新建一个nodemailer.js文件写发送邮件的配置信息,上代码
//nodemailer.jsconst nodemailer = require('nodemailer'); //创建一个smtp服务器const config = { host: 'smtp.163.com', port: 465, auth: { user: '这里写你自己的163邮箱@163.com', //注册的163邮箱账号 pass: 'xxxxxxx' //邮箱的授权码,不是注册时的密码,等你开启的stmp服务自然就会知道了 }};// 创建一个SMTP客户端对象const transporter = nodemailer.createTransport(config); //发送邮件module.exports = function (mail){ transporter.sendMail(mail, function(error, info){ if(error) { return console.log(error); } console.log('mail sent:', info.response); });};第三步:发送验证码
router.get('/email',async (ctx)=>{ var email = ctx.query.email;//刚刚从前台传过来的邮箱 var user_name = ctx.query.user_name;//刚刚从前台传过来用户名 var code = await tools.createSixNum();//这里是我写的生成的随机六位数,等等下面给代码 var date = new Date();//获取当前时间 var isLive = "no"; //去数据库中找有没有同名的用户名,这里就要自己写了,不同的数据库查询方法不同 var result =await DB.find('user',{user_name:user_name}); //console.log(result); if(result.length>0){ ctx.body ={success:false,message:"账号已经存在"} }else{ ctx.body ={success:true,message:"账号可行"};//数据传回前台 var mail = { // 发件人 from: '<你自己的163邮箱@163.com>', // 主题 subject: '接受凭证',//邮箱主题 // 收件人 to:email,//前台传过来的邮箱 // 邮件内容,HTML格式 text: '用'+code+'作为你的验证码'//发送验证码 }; var json = {user_name,email,code,date,isLive}; await DB.insert('user',json);//将获取到的验证码存进数据库,待会提交时要检查是不是一致 await nodemail(mail);//发送邮件 }})因为发的是六位数字的验证码,这里我写了一个随机生成六位随机数的函数:
createSixNum(){ var Num=""; for(var i=0;i<6;i++) { Num+=Math.floor(Math.random()*10); } return Num; }接下来就可以正常发送了,见下图
发送完了验证码,输入完验证码还要验证一下是否真确
router.post('/doRegister',async (ctx)=>{ //console.log(ctx.request.body); var username = ctx.request.body.username;//获取用户名 var password = ctx.request.body.password;//获取密码 var code = ctx.request.body.code;//获取你输入的验证码 //去数据库把刚刚在存验证码的时候一起存的那条记录找出来 var result =await DB.find('user',{"user_name":username}); var nowDate = (new Date()).getTime();//获取当前时间 判断验证码是否正确,时间是否超过10分钟 if(result[0].code===code && (result[0].date.getTime()) - nowDate <600000){ //更新数据库的用户信息,把用户密码深的也存进去 await DB.update('user',{user_name:username},{ "password":password, "status":1, "isLive":"yes",//注册成功啦 "add_time":tools.getTime() }); }else{ ctx.render('admin/error',{ //验证码过期或者是验证码错误,要写点什么的话自己再去写写吧。 }) } });感谢各位的阅读,以上就是"nodejs怎么实现发送邮箱验证码功能"的内容了,经过本文的学习后,相信大家对nodejs怎么实现发送邮箱验证码功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
验证
邮箱
前台
数据
用户
数据库
功能
用户名
邮件
输入
倒计时
内容
密码
时间
账号
学习
不同
上代
主题
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技图片
河南云网互联网络科技有限公司
互联网品科技
互联网为科技
广州互联网科技公司
易通互联网络科技有限公司
伴你行互联网科技有限公司
左右互联网络科技
互联网实体化科技化
北京华百购互联网科技有限公司
互联网金融科技公司干啥的
互联网科技商业
亳州好赞互联网科技有限公司
科技类公司包括互联网吗
广州有谷有贝互联网科技有限公司
版纳互联网科技选哪家
安徽零酒互联网科技有限公司
上海互联网科技园景观
互联网的黑科技实验室
互联网高科技绘画
互联网金融科技
远信互联网科技
互联网科技公司官网
广州紫鲸互联网科技
哈尔滨秒房互联网科技有限公司
北京三清互联网科技
科技与互联网哪个更好
宝灵互联网科技有限公司
互联网领先科技宣传片
互联网科技接地气