Node.js注册邮箱激活有哪些方法

这次给大家带来Node.js注册邮箱激活有哪些方法,Node.js实现注册邮箱激活的注意事项有哪些,下面就是实战案例,一起来看一下。

在做自己的node项目极客教程时,需要开发一个注册邮箱激活的功能,这个功能非常常见,当我们注册一个账号时,肯定会有这步,下面看下如何实现这个功能。

1. 注册邮箱

先注册一个支持发送验证邮件的邮箱,我这里注册的是网易的163邮箱,所以下面都是以163邮箱作为发件邮箱

注册成功后进行登录,然后点击导航栏的设置,选择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);

登录后复制

成功就可以在测试的邮箱看到所发的信息。

Node.js注册邮箱激活有哪些方法

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. 遇到的问题

开发中遇到如下问题:

{ [AuthError: Invalid login – 535 Error: authentication failed]
name: ‘AuthError’,
data: ‘535 Error: authentication failed’,
stage: ‘auth’ }

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

Vue里调用百度地图步骤详解

vue中如何使用jointjs属性

以上就是Node.js注册邮箱激活有哪些方法的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2764797.html

(0)
上一篇 2025年3月8日 10:37:26
下一篇 2025年3月8日 10:37:42

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JS常用函数总结归纳

    这次给大家带来JS常用函数总结归纳,使用JS常用函数的注意事项有哪些,下面就是实战案例,一起来看一下。 数组扁平化 数组扁平化有很多方法,但最终最好的方法就是递归,实现一个指定深度的扁平化方法,这样基本的套路都会了解。 function f…

    编程技术 2025年3月8日
    200
  • JS原始值与引用值有哪些储存方式

    这次给大家带来JS原始值与引用值有哪些储存方式,使用JS原始值与引用值储存方式的注意事项有哪些,下面就是实战案例,一起来看一下。 原始值指的是代表原始数据类型的值,也叫基本数据类型,包括:Number、Stirng、Boolean、Null…

    2025年3月8日
    200
  • JS动画定时器使用详解

    这次给大家带来JS动画定时器使用详解,JS动画定时器使用的注意事项有哪些,下面就是实战案例,一起来看一下。 广义说:一切通过js改变的视觉呈现都叫动画;例如,按钮,链接等元素交互反馈。 狭义说:通过定时器连续调用js函数进行元素属性改变产生…

    2025年3月8日
    200
  • 毕达哥拉斯树怎样用JS实现

    这次给大家带来毕达哥拉斯树怎样用JS实现,毕达哥拉斯树用JS实现的注意事项有哪些,下面就是实战案例,一起来看一下。 效果如下: 主要方法 translate() rotate() rect() push() pop() map() 主要思想…

    2025年3月8日
    200
  • js-cookie使用步骤详解

    这次给大家带来js-cookie使用步骤详解,js-cookie使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Cookie是网站设计者放置在客户端的小文本文件,一般后台语言使用的比较多,可以实现用户个性化的一些需求。js-cook…

    编程技术 2025年3月8日
    200
  • url、href、src在JS中的使用

    这次给大家带来url、href、src在JS中的使用,url、href、src在JS中使用的注意事项有哪些,下面就是实战案例,一起来看一下。 一、URL的概念 统一资源定位符(或称统一资源定位器/定位地址、URL地址等,英语:Uniform…

    2025年3月8日 编程技术
    200
  • js验证出生日期正则表达式

    这次给大家带来js验证出生日期正则表达式,实现js验证出生日期正则表达式的注意事项有哪些,下面就是实战案例,一起来看一下。 简言 在表单验证中,经常会用正则表达式做出生日期校验。本文把出生日期分割成几个部分,分步地介绍了实现一个出生日期校验…

    2025年3月8日
    200
  • Vue.js中computed使用详解

    这次给大家带来Vue.js中computed使用详解,Vue.js中computed使用的注意事项有哪些,下面就是实战案例,一起来看一下。 JS属性: JavaScript有一个特性是 Object.defineProperty ,它能做很…

    编程技术 2025年3月8日
    200
  • JS事件委托使用详解

    这次给大家带来JS事件委托使用详解,JS事件委托使用的注意事项有哪些,下面就是实战案例,一起来看一下。 事件委托(也叫事件代理),其实这个问题也简单,要想弄明白事件委托,我们先要把事件冒泡的机制搞清楚。举个事件冒泡的例子: 点击 var u…

    编程技术 2025年3月8日
    200
  • p5.js实现斐波那契螺旋动画步骤详解

    这次给大家带来p5.js实现斐波那契螺旋动画步骤详解,p5.js实现斐波那契螺旋动画的注意事项有哪些,下面就是实战案例,一起来看一下。 效果如下: 主要方法 translate() rotate() arc() 斐波那契螺旋 斐波那契螺旋线…

    2025年3月8日
    200

发表回复

登录后才能评论