使用nodejs+redis+mysql开发忘记密码-设置用户密码和修改密码接口

使用nodejs+redis+mysql开发忘记密码-设置用户密码和修改密码接口

创建忘记密码接口

http://127.0.0.1:8081/api/user/v1/forget

在roouter文件夹里创建接口地址

	//router/user.js
	const express = require('express')
	const router = express.Router()
	const UserController = require('../controller/UserController')
	
	// 设置密码接口
	router.post('/forget',UserController.forget)
	
	module.exports = router

在app.js排除下接口

	// 用户认证中间件
	app.use(jwt({ secret: jwtSecretKey, algorithms: ['HS256'] }).unless({
	  path: [
	    /^\/api\/notify\/v1/, //图形验证码通知接口排除
	    /^\/api\/user\/v1\/register/, //注册通知接口排除
	    /^\/api\/user\/v1\/forget/, //设置通知接口排除
	    /^\/api\/wxLogin\/v1/, //登录通知接口排除
	  ]
	}))

忘记密码控制层以及数据层逻辑开发

	// 控制层逻辑
	const UserService = require('../service/UserService.js')

	const UserController = {
	    forget:async(req,res)=>{
	        let handleRes = await UserService.forget(req)
	        res.send(handleRes)
	    }
	}
	
	module.exports = UserController
	
	// 数据层逻辑
	const DB = require('../config/sequelize')
	const redisConfig = require('../config/redisConfig')
	const RandomTool = require('../utils/randomTool')
	const SecretTool = require('../utils/SecretTool')
	const BackCode = require('../utils/BackCode')
	const codeEnum = require('../utils/CodeEnum')

	const UserService = {
   	    forget:async(req)=>{
	        let {phone,password,code} = req.body
	        // 判断code在redis中是否存在
	        let codeExit = await redisConfig.exists('change:code:'+phone)
	        if(!codeExit) return BackCode.buildError({msg:'请先获取手机验证码'})
	        // 判断redis中code和用户输入的是否一致
	        let codeRes = await redisConfig.get('change:code:'+phone)
	        if(!(code==codeRes)) return BackCode.buildError({msg:'手机验证码输入不正确'})
	        
	        let pwd = SecretTool.md5(password)
	        await DB.Account.update({pwd},{where:{phone}})
	        return BackCode.buildSuccessAndMsg({msg:'密码修改成功'})
	    }
	}
	
	module.exports = UserService 

大功告成,可以在apifox上进行测试

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化解决方案,Docker Compose可以简化多个容器的管理和部署流程。Nacos是一个用于服务发现、配置管理和动态DNS服务的开源平台。Node.js是一个基于JavaScript的开源、跨平台的运行时环境,用于构建可扩展的网络应用程序。MongoDB是一个高性能、文档型NoSQL数据库,适用于处理大量的结构化和非结构化数据。MySQL是一个开源的关系型数据库管理系统,用于存储和管理结构化数据。Redis是一个基于内存的高性能键值存储系统,用于缓存和数据持久化。Seata是一个开源的分布式事务解决方案,用于保证分布式系统中的数据一致性。 通过Docker Compose,我们可以轻松地将这些不同的组件和服务以容器化的方式部署在一台或多台服务器上。我们可以使用Docker Compose的配置文件定义每个服务的镜像、端口映射、环境变量等设置。在这个场景中,我们可以将Nacos、Node.js、MongoDB、MySQLRedis和Seata分别作为独立的服务进行定义。 使用Docker Compose可以简化部署过程,只需运行一个命令即可启动整个应用程序的容器群组。Docker会自动拉取和部署所需的镜像,启动容器,并通过网络连接各个服务。Nacos可以作为服务发现和配置中心,用于管理和注册各个服务的地址和配置信息。Node.js可以作为应用程序的后端逻辑进行开发,通过Nacos来发现和调用各个后端服务。MongoDB作为主要的数据存储,MySQLRedis可以作为辅助数据存储和缓存。Seata可以用于管理和控制分布式事务,确保数据一致性。 总之,使用Docker Compose可以方便地将Nacos、Node.js、MongoDB、MySQLRedis和Seata等组件集成在一起,并通过容器化的方式进行部署。这样做可以极大地简化应用程序的开发和部署过程,并提供高度可扩展的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值