使用node.js做一个简单的登录注册以及邮箱验证

server服务端需要安装的几个插件

  1. npm init --yes
  2. npm i express
  3. npm i nodemailer
  4. node server.js

server.js ↓

const express=require('express');
const app=express();
const Mail=require('./module/mail.js')
//解析 post body
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({extended : false}))
app.use(bodyParser.json())

let codeObj={}
app.get('/login',(req,res)=>{
    res.send('ok')
})

/* get code  */

app.get('/getCode',(req,res)=>{
    let mail =req.query.mail;  //获取数据
    let code =Math.floor(Math.random()*11000-1001);
    codeObj[mail]=code;
    console.log(codeObj);
    Mail.send(mail,code,(state)=>{
        if(state===1){
            res.send('发送ok')
        }else{
            res.send('发送失败')
        }
    })
})

/*  注册功能  */
app.post('./reg',(req,res)=>{
    let{code,mail,pass}=req.body

    if(codeObj[mail]==code){
        res.send('注册成功')
    }else{
        res.send('验证码错误')
    }
})
app.listen(3003,()=>{
    console.log('server start in port'+ 3003)
})
//
/*
一、获取验证码
  1. 产生验证码
  2. 发送验证码
  3. 保存验证码
二、验证验证码
  1. 提交数据
  2. 对比
*/

mail.js ↓ (在module文件下)

/*
封装一个发送邮件的模块
调用传递参数的方式  来到达到简化调用
*/
const nodemailer = require('nodemailer');
//创建发送邮件的对象
let transporter = nodemailer.createTransport({
    service: 'qq', // 运营商选择   qq   网易
    port: 465,
    secure: true, // true for 465, false for other ports
    auth: {
        user: "11111111111@qq.com", // 发送方的邮箱
        pass: 'qweqweqweewqew' //   pop3 授权码 **百度如何获取吧**
    }
});

//邮件内容
let mail = {
    transporter: transporter,
    send(mail, content, callback) {
        let mailOptions = {
            from: '"Fred Foo ?" <11111111111@qq.com>', // 发送方邮箱
            to: mail, // list of receivers
            subject: '欢迎注册√', // Subject line
            text: `${content}`, // plain text body
            html: `欢迎注册点菜系统,验证码为:${content},有效期为五分钟.` // html body   
        }

        //发送邮件
        this.transporter.sendMail(mailOptions, (error, info) => {
            if (error) {
                callback(-1); // 失败
                return console.log(error);
            }
            console.log('Message sent: %s', info.messageId);
            console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
            callback(1); // 成功
        });
    }
}
module.exports = mail;
使用时请把文件放在对应的路径位置下 , 并且修改邮箱以及POP授权码 , 注释的位置基本上都需要修改 ; 主要看看大致的思路 , 自己编写的代码更容易修改 , 谢谢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值