Utilisez nodejs+redis+mysql pour développer un mot de passe oublié - définissez le mot de passe utilisateur et modifiez l'interface du mot de passe

Utilisez nodejs+redis+mysql pour développer un mot de passe oublié - définissez le mot de passe utilisateur et modifiez l'interface du mot de passe

Créer une interface de mot de passe oublié

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

Créez l'adresse de l'interface dans le dossier du routeur

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

Exclure l'interface dans 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/, //登录通知接口排除
	  ]
	}))

Oubliez la couche de contrôle des mots de passe et le développement logique de la couche de données

	// 控制层逻辑
	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 

Vous avez terminé, prêt à tester sur apifox

insérer la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/u011313034/article/details/131215404
conseillé
Classement