当前位置: 首页 > news >正文

做网站的人叫什么一个企业seo网站的优化流程

做网站的人叫什么,一个企业seo网站的优化流程,建网站空间购买,星艺装饰集团有限公司官网实现修改密码,本篇文章实现修改密码只考虑以下几个方面: (1),获取旧密码 (2),获取新密码 (3),将获取到的旧密码与数据库中的密码进行比对&#xf…

        实现修改密码,本篇文章实现修改密码只考虑以下几个方面:

        (1),获取旧密码

        (2),获取新密码

        (3),将获取到的旧密码与数据库中的密码进行比对(避免修改错用户)

        (4),新密码与进密码进行比对,新密码和旧密码不能相同

        (5),将新密码加密存入数据库中

        另外的一些点就不考虑了。

        在我的这篇博客(Node.js: express + MySQL实现注册登录,身份认证_express连接mysql数据库注册登陆_掉头发类型的选手的博客-CSDN博客)中写到,注册时用到  bcryptjs  这个包对密码进行加密,所以在修改密码时也需要用到包进行密码的比较和对新密码进行加密。

        从前端接收的值,id(判断修改哪个用户的密码),oldPwd(旧密码),newPwd(新密码),会存储到 req 中。

        文件中写的是修改密码的函数,路径可以看我之前关于注册的文章,将路径和他的执行函数分开编写。便于管理。

// 修改密码
exports.updatePassword = (req, res) => {console.log(req);
}

        (1),根据id值获取数据库中需要修改的密码

exports.updatePassword = (req, res) => {console.log(req);// 根据id查询用户信息const sql = 'select * from ev_users where id=?'// 执行sql语句db.query(sql, req.user.id, (err, results) => {// 查询出错if (err) return res.cc(err)// 查询成功 但条数不等于1if (results.length !== 1) return res.cc('用户不存在')console.log(results[0].password);})
}

        根据id去查询需要修改的数据,如果查询出错或用户不存在做一下处理,如果查询成功,        results[0].password  就是数据库中存储的加密后的密码。

        (2),之后从 req 中获取到的密码和数据库中存储的密码进行比较,是否一致,比较可以使用  bcryptjs  包中的一个方法(bcryptjs 是存储密码时对密码进行加密使用的包),compareSync方法。

exports.updatePassword = (req, res) => {console.log(req);// 根据id查询用户信息const sql = 'select * from ev_users where id=?'// 执行sql语句db.query(sql, req.user.id, (err, results) => {// 查询出错if (err) return res.cc(err)// 查询成功 但条数不等于1if (results.length !== 1) return res.cc('用户不存在')// 判断用户输入的旧密码是否正确// 不能直接判断  数据库中存加密后的密码const compareResult = bcryptjs.compareSync(req.body.oldPwd, results[0].password)if (!compareResult) return res.cc('旧密码错误!')})
}

        使用  bcryptjs.compareSync(req.body.oldPwd, results[0].password)  就可以对获取的旧密码和数据库中存储的密码进行比较。相同会返回true,不同返回false。

        (3)将新密码和数据库中的密码进行比较,新密码不能和原密码相同。

第一种判断方法

const sameCompare = bcryptjs.compareSync(req.body.newPwd, results[0].password)
if (sameCompare) return res.cc('新密码不能和原密码相同!')

第二种判断方法

        在注册登录那篇文章中写到有两个包,@escook/express-joi(自动对表单数据进行验证),joi(字段规则),也可以用这两个包进行新旧密码的判断。

// 导入定义验证规则的包
const joi = require('joi')// 字符串类型,匹配正则,必输
const password = joi.string().pattern(/^[\S]{6,12}$/).required()exports.update_password_schema = {body: {// 旧密码使用 password 这个规则oldPwd: password,// 新密码不能等于旧密码,但也得符合密码的规则// joi.ref('')  与括号中的值保持一致newPwd: joi.not(joi.ref('oldPwd')).concat(password),}
}

        之后在路由处使用。

// 导入验证数据的中间件
const expressJoi = require('@escook/express-joi')
const { update_password_schema } = require('../schema/user')// 重置密码
router.post('/updatePwd', expressJoi(update_password_schema), userInfo_handler.updatePassword)

        如果输入一致的话会返回:

        (4)之后就可以将新密码加密存储到数据库中。

        先将新密码加密,然后再使用  update  语句将密码存储到数据库中。这个接口所有的代码:

// 重置密码
exports.updatePassword = (req, res) => {// console.log(req);// 根据id查询用户信息const sql = 'select * from users where id=?'// 执行sql语句db.query(sql, req.user.id, (err, results) => {// 查询出错if (err) return res.cc(err)// 查询成功 但条数不等于1if (results.length !== 1) return res.cc('用户不存在')// 判断用户输入的旧密码是否正确// 不能直接判断  数据库中存加密后的密码const compareResult = bcryptjs.compareSync(req.body.oldPwd, results[0].password)if (!compareResult) return res.cc('旧密码错误!')// 将新密码更新到数据库中// 更新密码sql语句const sql = 'update users set password=? where id=?'// 对新密码进行加密处理const newPwd = bcryptjs.hashSync(req.body.newPwd, 10)db.query(sql, [newPwd, req.user.id], (err, results) => {// 执行sql语句失败if (err) return res.cc(err)// 执行成功 但修改的条数不为1,没有修改if (results.affectedRows !== 1) return res.cc('修改密码失败')// 修改密码成功res.cc('修改密码成功', 0)})})
}

        可以到下面链接获取文章中的代码。

        链接: https://pan.baidu.com/s/1t7bX0Nv3kggyf7IFzEffcA 提取码: 0000

http://www.hkea.cn/news/319196/

相关文章:

  • 成都网站建设s1emens电商平台怎么加入
  • 六合哪家做网站建设域名注册查询软件
  • 网站建设的方案费用2023年新冠疫情最新消息
  • 九星市场做网站快速将网站seo
  • 长春做网站推广的公司提升神马关键词排名报价
  • 金融网站cms百度网盘客服电话人工服务
  • 美观网站建设物美价廉seo网站优化专员
  • 网站设计应该怎么做推广软文代写
  • 网站建设工作室发展百度收录教程
  • 没有网站 可以做百度口碑吗成都网站制作
  • 医院系统网站建设百度宁波营销中心
  • 网站劫持代码杭州互联网公司排名榜
  • 做网站找哪个部门吸引人的推广标题
  • 网站制作软件名字线做竞价推广代运营公司
  • avada如何做中英文网站沈阳百度推广排名优化
  • 做网站品长沙网络营销公司排名
  • b2b商贸网站环球网最新消息疫情
  • wordpress next主题什么是seo教程
  • 如何规划一个网站快手秒赞秒评网站推广
  • 中国网站开发网站seo需要用到哪些工具
  • 织梦做的网站首页出现空白网页平台做个业务推广
  • 备案做电影网站吗yandx引擎入口
  • 网站双倍浮动百度账号登陆入口
  • 聊城市网站建设网站推广排名
  • 帝国新闻网站模板百度seo推广怎么做
  • 预约做港澳证的网站网站排名在线优化工具
  • 罗湖实惠的网站建设费用成都官网seo厂家
  • 建设部官方网站有哪些优帮云排名优化
  • 天津做网站找谁新东方在线教育平台官网
  • 南宁做网站在哪了日本预测比分