密码重置功能实现

个人项目的最后一个功能:密码重置实现思路

 

1.用户输入自己的邮箱和新密码,后台通过数据库判断是否有该用户的邮箱;

 

2.有则将前端传过来的:用户邮箱、新密码(需加密)、随机生成的一串字符,存储到模块的全局变量里

  ——如果没有返回500响应

 

3.发送随机生成的字符串到该用户的邮箱;(nodemailer)

 

4.用户将收到的字符密码输入文本框,请求后台检验验证码接口

 

5.如果发送的验证码和用户接收后填写的一致,就可以找回密码;

  ——根据存储的用户邮箱来查询数据库,并修改密码

转载于:https://www.cnblogs.com/yinblog/p/10649932.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要安装 `nodemailer` 和 `dotenv` 模块。 1. 创建 `.env` 文件并添加以下内容: ``` EMAIL_USER=your_email_address EMAIL_PASSWORD=your_email_password ``` 2. 在你的 Express 项目中创建一个 `reset-password.js` 文件,其中包含以下代码: ```javascript require('dotenv').config(); const nodemailer = require('nodemailer'); const router = require('express').Router(); // 创建邮件传输对象 const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASSWORD, }, }); // 处理发送邮件的 POST 请求 router.post('/reset-password', (req, res) => { const { email } = req.body; // 创建邮件内容 const mailOptions = { from: process.env.EMAIL_USER, to: email, subject: 'Reset your password', text: 'Click the following link to reset your password:', html: `<p>Click the following link to reset your password:</p><a href="http://yourwebsite.com/reset-password/${token}">Reset Password</a>`, }; // 发送邮件 transporter.sendMail(mailOptions, (error, info) => { if (error) { console.error(error); res.status(500).send('Error sending email'); } else { console.log('Email sent: ' + info.response); res.status(200).send('Email sent successfully'); } }); }); module.exports = router; ``` 请注意,上面的代码中的 `http://yourwebsite.com/reset-password/${token}` 应该替换为你的实际网站地址和生成的重置密码 token。 3. 在你的 Express 应用程序中,使用以下代码将此路由添加到你的应用程序中: ```javascript const resetPasswordRouter = require('./reset-password'); app.use('/', resetPasswordRouter); ``` 现在,当用户请求重置密码时,你将能够通过发送电子邮件来重置他们的密码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值