nodejs怎么实现发送邮箱验证码功能
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要讲解了"nodejs怎么实现发送邮箱验证码功能",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"nodejs怎么实现发送邮箱验证码功能"吧!1
千家信息网最后更新 2025年11月09日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安全错误
数据库的锁怎样保障安全
java 图片服务器路径
福建软件开发设施价钱
湛江erp软件开发费用是多少
无锡奥维互联网科技有限公司
网络数据库的作用
ipad连接更新服务器
海瑶软件开发官网
计算机中数据库管理系统有哪些
中央网络技术和
网络安全宣传周宁夏
戴尔服务器拆开机箱后提示
oracle重启服务器
爱分趣网络技术有限公司
mac vpn服务器地址
不能在安全服务器玩
饲养标准数据库
东北大学生网络安全专业
数据库原理与应用实体名词解释
淄川销售软件开发报价
教师如何提高网络安全意识
数据库编写脚本教程
软件开发项目总结的结束语
软件开发企业报价
霸者重装哪个服务器
人工智能网络安全防御
河南新地网络技术
嘉兴手机app定制软件开发
趣智科技软件开发部
两个数据源操作同一个数据库
计算机软件开发与发展