作者:手机用户2602938185 | 来源:互联网 | 2023-07-14 09:48
web前端|js教程javascript,Node.js,激活web前端-js教程在做自己的node项目极客教学时,需要开发一个注册邮箱激活的功能,这个功能非常常见,当我们注册一个
web前端|js教程
Javascript,Node.js,激活
web前端-js教程
在做自己的node项目极客教学时,需要开发一个注册邮箱激活的功能,这个功能非常常见,当我们注册一个账号时,肯定会有这步,下面看下如何实现这个功能。
xmpp android源码,mx3ubuntu,爬虫软件图标文案,php的php.ini在,阿里seo博客lzw
1. 注册邮箱画室网站源码,mpvue vscode,ubuntu复制快捷键,tomcat管理控制台访问端口,sqlite 获取主键,网页设计深圳,香港服务器限制吗,wp 插件 libs,前端开发css框架,微信小爬虫,php交友系统,seo组,微信导航网站模板,好看的手机端网页模板下载,HTMl5模板图册,页面添加图片,进销存管理系统asp.net源码,jpeg的压缩和编码 matlab程序lzw
先注册一个支持发送验证邮件的邮箱,我这里注册的是网易的163邮箱,所以下面都是以163邮箱作为发件邮箱
本地生活程序源码,vscode插件在哪个目录,ubuntu的ifup,tomcat 不能开启,爬虫种子批发,php 跟踪调试,许昌seo建设工作室,个人博客网站模板word,asp.net模板源码lzw
注册成功后进行登录,然后点击导航栏的设置,选择POP3/SMTP/IMAP,开启POP3/SMTP/IMAP服务,设置授权码就可以了。
2. 下载nodemailer插件
在命令行输入:npm install –save nodemailer
3. 编写发送邮件代码
3.1 对发送激活邮件代码进行封装,然后导出:
//email.js// 引入 nodemailerconst nodemailer = require('nodemailer');// 创建一个SMTP客户端配置const cOnfig= { host: 'smtp.163.com', port: 465, auth: { user: 'xxxx@163.com', //刚才注册的邮箱账号 pass: 'xxxxxx' //邮箱的授权码,不是注册时的密码 } };// 创建一个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); });};
3.2 进行测试:
//sendtest.jsvar send = require('./email.js');// 创建一个邮件对象var mail = { // 发件人 from: '极客教学 ', // 主题 subject: '[极客教学]激活邮箱账号', // 收件人 to: 'xxxx@qq.com', // 邮件内容,HTML格式 text: `尊敬的${user.name},您好!点击链接即可激活您的极客教学 网账号,http://localhost:3000/checkCode?name=${user.name}&code=${user.code}为保障您的帐号安全,请在24小时内点击该链接,您也可以将链接复制到浏览器地址栏访问。 若如果您并未尝试修改密码,请忽略本邮件,由此给您带来的不便请谅解。本邮件由系统自动发出,请勿直接回复!` //接收激活请求的链接};send(mail);
成功就可以在测试的邮箱看到所发的信息。
4. 验证步骤
简单的讲一下如何实现邮箱验证。
1 . 在自己定义的数据库用户数据结构中一定要有激活码、过期时间、是否已经激活的字段,用于在激活时进行判断;
{ code: String, //激活码,格式自己定义 date: Number, //过期日期,过期后不能激活 islive: Boolean //判断是否激活}
2 . 发送激活链接,其中包含用户名和激活码,如下面这样:
// 创建一个邮件对象var mail = { // 发件人 from: '极客教学 ', // 主题 subject: '[极客教学]激活邮箱账号', // 收件人 to: 'xxxx@qq.com', // 邮件内容,HTML格式 text: `尊敬的${user.name},您好!点击链接即可激活您的极客教学 网账号,http://localhost:3000/checkCode?name=${user.name}&code=${user.code}为保障您的帐号安全,请在24小时内点击该链接,您也可以将链接复制到浏览器地址栏访问。 若如果您并未尝试修改密码,请忽略本邮件,由此给您带来的不便请谅解。本邮件由系统自动发出,请勿直接回复!` //接收激活请求的链接};send(mail);
3 . 响应激活请求,根据激活链接的用户名进行查找,若用户存在则判断激活码是否一致,并判断激活码是否过期,全部正确则改变激活状态,此时激活成功,如下代码:
// check email codeexports.checkCode = function (req, res){ var username = req.query.name; var code = req.query.code; User.findOne({name: username}, function (err, user){ if (user.code === code && (user.date - Date.now()) > 0){ User.update({name: username}, {islive: true}, function (err){ if (err){ res.json({error: true}) }else{ console.log(user) res.json({ok: true}) } }); }else{ res.json({ email: user.mail, failure: true }) } });}
5. 遇到的问题
开发中遇到如下问题:
smtp服务器验证不通过,因为网易的邮箱有个授权限制,一定要好好检查你注册邮箱时的账号和授权码。
PHP实现验证邮箱激活新用户注册后登录功能
PHP发送邮箱激活验证_PHP教学
PHP邮箱激活功能解决思路