最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js實(shí)現(xiàn)注冊(cè)郵箱激活功能的方法示例

 更新時(shí)間:2018年03月23日 13:50:46   作者:極客教程  
現(xiàn)在很多網(wǎng)站都需要有注冊(cè)郵箱激活的功能,本篇文章主要介紹了Node.js實(shí)現(xiàn)注冊(cè)郵箱激活功能的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在做自己的node項(xiàng)目極客教程時(shí),需要開發(fā)一個(gè)注冊(cè)郵箱激活的功能,這個(gè)功能非常常見,當(dāng)我們注冊(cè)一個(gè)賬號(hào)時(shí),肯定會(huì)有這步,下面看下如何實(shí)現(xiàn)這個(gè)功能。

1. 注冊(cè)郵箱

先注冊(cè)一個(gè)支持發(fā)送驗(yàn)證郵件的郵箱,我這里注冊(cè)的是網(wǎng)易的163郵箱,所以下面都是以163郵箱作為發(fā)件郵箱

注冊(cè)成功后進(jìn)行登錄,然后點(diǎn)擊導(dǎo)航欄的設(shè)置,選擇POP3/SMTP/IMAP,開啟POP3/SMTP/IMAP服務(wù),設(shè)置授權(quán)碼就可以了。

2. 下載nodemailer插件

在命令行輸入:npm install --save nodemailer

3. 編寫發(fā)送郵件代碼

3.1 對(duì)發(fā)送激活郵件代碼進(jìn)行封裝,然后導(dǎo)出:

//email.js

// 引入 nodemailer
const nodemailer = require('nodemailer');

// 創(chuàng)建一個(gè)SMTP客戶端配置
const config = {
    host: 'smtp.163.com',
    port: 465,
    auth: {
      user: 'xxxx@163.com', //剛才注冊(cè)的郵箱賬號(hào)
      pass: 'xxxxxx' //郵箱的授權(quán)碼,不是注冊(cè)時(shí)的密碼
    }
  };

// 創(chuàng)建一個(gè)SMTP客戶端對(duì)象
const transporter = nodemailer.createTransport(config);

// 發(fā)送郵件
module.exports = function (mail){
  transporter.sendMail(mail, function(error, info){
    if(error) {
      return console.log(error);
    }
    console.log('mail sent:', info.response);
  });
};

3.2 進(jìn)行測(cè)試:

//sendtest.js

var send = require('./email.js');


// 創(chuàng)建一個(gè)郵件對(duì)象
var mail = {
  // 發(fā)件人
  from: '極客教程 <xxxx@163.com>',
  // 主題
  subject: '[極客教程]激活郵箱賬號(hào)',
  // 收件人
  to: 'xxxx@qq.com',
  // 郵件內(nèi)容,HTML格式
  text: `尊敬的${user.name},您好!點(diǎn)擊鏈接即可激活您的極客教程
      網(wǎng)賬號(hào),http://localhost:3000/checkCode?name=${user.name}&code=${user.code}為保障您的帳號(hào)安全,請(qǐng)?jiān)?4小時(shí)內(nèi)點(diǎn)擊該鏈接,您也可以將鏈接復(fù)制到瀏覽器地址欄訪問。 若如果您并未嘗試修改密碼,請(qǐng)忽略本郵件,由此給您帶來的不便請(qǐng)諒解。本郵件由系統(tǒng)自動(dòng)發(fā)出,請(qǐng)勿直接回復(fù)!` //接收激活請(qǐng)求的鏈接
};
send(mail);

成功就可以在測(cè)試的郵箱看到所發(fā)的信息。


4. 驗(yàn)證步驟

簡(jiǎn)單的講一下如何實(shí)現(xiàn)郵箱驗(yàn)證。

1 . 在自己定義的數(shù)據(jù)庫(kù)用戶數(shù)據(jù)結(jié)構(gòu)中一定要有激活碼、過期時(shí)間、是否已經(jīng)激活的字段,用于在激活時(shí)進(jìn)行判斷;

{
  code: String, //激活碼,格式自己定義
  date: Number, //過期日期,過期后不能激活
  islive: Boolean //判斷是否激活
}

2 . 發(fā)送激活鏈接,其中包含用戶名和激活碼,如下面這樣:

// 創(chuàng)建一個(gè)郵件對(duì)象
var mail = {
  // 發(fā)件人
  from: '極客教程 <xxxx@163.com>',
  // 主題
  subject: '[極客教程]激活郵箱賬號(hào)',
  // 收件人
  to: 'xxxx@qq.com',
  // 郵件內(nèi)容,HTML格式
  text: `尊敬的${user.name},您好!點(diǎn)擊鏈接即可激活您的極客教程
      網(wǎng)賬號(hào),http://localhost:3000/checkCode?name=${user.name}&code=${user.code}為保障您的帳號(hào)安全,請(qǐng)?jiān)?4小時(shí)內(nèi)點(diǎn)擊該鏈接,您也可以將鏈接復(fù)制到瀏覽器地址欄訪問。 若如果您并未嘗試修改密碼,請(qǐng)忽略本郵件,由此給您帶來的不便請(qǐng)諒解。本郵件由系統(tǒng)自動(dòng)發(fā)出,請(qǐng)勿直接回復(fù)!` //接收激活請(qǐng)求的鏈接
};
send(mail);

3 . 響應(yīng)激活請(qǐng)求,根據(jù)激活鏈接的用戶名進(jìn)行查找,若用戶存在則判斷激活碼是否一致,并判斷激活碼是否過期,全部正確則改變激活狀態(tài),此時(shí)激活成功,如下代碼:

// check email code
exports.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. 遇到的問題

開發(fā)中遇到如下問題:

{ [AuthError: Invalid login - 535 Error: authentication failed]
name: ‘AuthError',
data: ‘535 Error: authentication failed',
stage: ‘a(chǎn)uth' }

smtp服務(wù)器驗(yàn)證不通過,因?yàn)榫W(wǎng)易的郵箱有個(gè)授權(quán)限制,一定要好好檢查你注冊(cè)郵箱時(shí)的賬號(hào)和授權(quán)碼。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法

    使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法

    本篇文章主要介紹了使用express搭建一個(gè)簡(jiǎn)單的查詢服務(wù)器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • node.js實(shí)現(xiàn)多圖片上傳實(shí)例

    node.js實(shí)現(xiàn)多圖片上傳實(shí)例

    這篇文章主要介紹了node.js實(shí)現(xiàn)多圖片上傳實(shí)例,包括路由、控制器和視圖的源碼,重點(diǎn)在圖片上傳處理程序,需要的朋友可以參考下
    2014-06-06
  • 淺析Node.js中使用依賴注入的相關(guān)問題及解決方法

    淺析Node.js中使用依賴注入的相關(guān)問題及解決方法

    這篇文章主要介紹了淺析Node.js中使用依賴注入的相關(guān)問題及解決方法,Node.js是一個(gè)將JavaScript應(yīng)用運(yùn)行于服務(wù)器端的框架,需要的朋友可以參考下
    2015-06-06
  • Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)

    Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)

    這篇文章介紹了Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)

    Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù)

    這篇文章主要為大家介紹了Nest.js系列學(xué)習(xí)之初識(shí)nest項(xiàng)目框架及服務(wù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Node的文件系統(tǒng)你了解多少

    Node的文件系統(tǒng)你了解多少

    這篇文章主要為大家詳細(xì)介紹了Node的文件系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 教你用Node.js與Express建立一個(gè)GraphQL服務(wù)器

    教你用Node.js與Express建立一個(gè)GraphQL服務(wù)器

    GraphQL是一種通過強(qiáng)類型查詢語言構(gòu)建api的新方法,下面這篇文章主要給大家介紹了關(guān)于用Node.js與Express建立一個(gè)GraphQL服務(wù)器的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 一文秒懂nodejs中的異步編程

    一文秒懂nodejs中的異步編程

    這篇文章主要介紹了深入理解nodejs中的異步編程,本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • nodejs取得當(dāng)前執(zhí)行路徑的方法

    nodejs取得當(dāng)前執(zhí)行路徑的方法

    今天小編就為大家分享一篇nodejs取得當(dāng)前執(zhí)行路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • CentOS上安裝Node.js和mongodb筆記

    CentOS上安裝Node.js和mongodb筆記

    這篇文章主要介紹了CentOS上安裝Node.js和mongodb筆記,本文講解了Python安裝、Node.js安裝、npm安裝、mongodb驅(qū)動(dòng)安裝、mongodb數(shù)據(jù)庫(kù)操作測(cè)試代碼等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

磐石市| 股票| 海口市| 阳城县| 姚安县| 多伦县| 衡南县| 邵阳县| 方城县| 常州市| 应用必备| 鄂托克前旗| 罗源县| 孙吴县| 九龙城区| 化隆| 靖边县| 双辽市| 莎车县| 武冈市| 海原县| 巴南区| 四平市| 光山县| 班玛县| 洪洞县| 广元市| 临泽县| 宁武县| 都兰县| 秦安县| 中卫市| 井冈山市| 延安市| 桦甸市| 勃利县| 永定县| 烟台市| 柘荣县| 溧水县| 酉阳|