首页 > 其他分享 >expres实现登录与修改密码

expres实现登录与修改密码

时间:2023-01-08 23:01:14浏览次数:33  
标签:username 登录 修改 res 密码 expres password

登录模块

如果登录的时候,昵称在数据库中查询的是不唯一值。需要提示用户登录失败。
即使用户密码输入正确。
然后将该消息通知相关人员,立即进行排查问题。
var express = require('express');
var router = express.Router();

// 引入连接数据库的模块
const connection=require("./connectmysql.js")

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

// 登录
router.post('/login', function (req, res) {
  let { username, password } = req.body
  // 1.构造SQL语句。
  const sqlStr = `select * from account where username= '${username}' and password='${password}'`
  console.log('sql', username, password )
  connection.query(sqlStr, (err, data) => {
    if (err) {
      throw err
    } else {
      if (!data.length) {
        res.send({
          code: 1,
          msg:'请检查用户名或者密码'
        });
      } else if(data.length==1){ // 如果查询出是2,仍然登录失败,
        let results = JSON.stringify(data);//把results对象转为字符串,去掉RowDataPacket
        let obj = JSON.parse(results);//把results字符串转为json对象
        console.log(obj)
        res.send({
          code: 0,
          msg: '恭喜你登录成功12',
          username: data.username
        });
      } else { 
        res.send({
          code: 3,
          msg:'请检查用户名或者密码'
        });
      }
    }
  })
});

module.exports = router;

前端代码

//登录
sendLogin() {
  axios.post('http://127.0.0.1:666/login/login', {
      username: '修改了',
      password: 'lth123456',
  }).then(function (response) {
      console.log(response);
  }).catch(function (error) {
      console.log(error);
  });
}

修改登录密码

修改登录密码的时候需要注意的几点:
1.在创建账户的时候,昵称就应该是唯一的。
因为如果不唯一,将无法进行修改账号。修改的时候总需要有一个唯一值进行查询到后才能够进修改。

2.修改账号的时候,如果修改的是昵称,也应该查询用户修改后的昵称是否在数据库中存在,存在的话,修改失败。
// 修改密码-->先检查原来的密码是否正确。如果正确在通过昵称进行修改密码。因为在创建的时候昵称就不可以重复
router.post('/editorpassword', function(req, res) {
  let { username, password, newpassword } = req.body;
  //1.先检查原来的密码是否正确
  const sqlStr = `select * from account where username= '${username}' and password='${password}'`
  connection.query(sqlStr, (err, data) => {
    if (err) {
      throw err
    } else {
      if (!data.length) {
        res.send({
          code: 1,
          msg:'原密码错误'
        });
      } else if( data.length ===1){ //只有一条数据的时候才能够登录成功,否者昵称重复了。仍然登录失败
        // 2.如果正确在进行修改密码。
        const esitSql = `update  account set  password= '${newpassword}' where username= '${username}'`
        connection.query(esitSql, (e, d) => {
          if (e) {
            res.send({
              code: 1,
              msg:'修改密码失败'
            });
            throw e
          } else {
             //这个判断是否删除成功,因为有可能没有这个id的
            if (d.affectedRows>0) {
              res.send({
                code: 0,
                msg:'修改密码成功'
              });
            } else {
              res.send({
                code: 1,
                msg:'修改密码失败'
              });
            }
          }
        })
      } else {
        res.send({
          code: 3,
          msg:'修改密码失败'
        });
      }
    }
  })
});

前端代码

sendApi8() {
  axios.post('http://127.0.0.1:666/login/editorpassword', {
      username: '修改了',
      password: 'admin123',
      newpassword: 'admin123'
  }).then(function (response) {
      console.log(response);
  }).catch(function (error) {
      console.log(error);
  });
}

标签:username,登录,修改,res,密码,expres,password
From: https://www.cnblogs.com/IwishIcould/p/17035655.html

相关文章

  • 登录他人mysql
    //登录参数:mysql-u用户名-p密码-h要连接的mysql服务器的ip地址(默认127.0.0.1)-P端口号(默认3306)  ......
  • ubuntu20下mysql5.7数据库修改密码
    --找到mysql配置文件修改/etc/mysql/mysql.conf.d/mysqld.cnf#加上下面的可以不要密码登录#skip-grant-tables#skip-networking然后重启mysql服务servicemysqlr......
  • 海康 登录 错误码 16777215错误码
    海康卡口相机你这个老6呀,老子写了两套代码,你这个老6竟然在我和玩躲猫猫 返回这个错误码的原因是我程序首先连接MySQL数据库了,然后才是初始化和登录数据库。这个顺序导致......
  • BBS登录功能思路总结
    BBS登录功能思路总结目录BBS登录功能思路总结一、登录功能编写步骤概览二、登录功能编写步骤详细1.开设登录接口2.写登录视图函数先返回页面3.创建登录前端页面先渲染......
  • windows共享文件夹并设置免密码访问
    1.右击文件选择属性2.点击共享3.选择everyone用户,表示任何人都可以访问这个文件夹4.赋予相应权限,点击共享5.完成共享6.在另一台电脑上进行访问首先需要知......
  • SimpleAdmin手摸手教学之:登录鉴权
    一、前言不管是作为一个后台管理系统,还是客户端应用系统,登录都是一个必备的功能,基本上每个程序员都写过登录接口,基本就是用户输入账号密码然后去数据查比对是否一样,一样就......
  • DevExpress 的LayoutControl控件导致资源无法释放的问题处理
    现象记录前段时间同事发现我们的软件在加载指定的插件界面后,关闭后插件的界面资源不能释放,资源管理器中不管内存,还是GDI对象等相关资源都不会下降。问题代码问题的......
  • kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载_商洛学院司徒荆_新浪博客
         VMWare下的配置下的配置首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还没有一个可以破解任意类型wifi密码的工具或者方案存在。虽然你可以在网络上找......
  • express实现批量删除和分页
    后端代码批量删除//批量删除router.get('/manyDel',function(req,res){let{ids}=req.queryif(ids&&ids.length>0){//如果用户的值为空,不执行下面的......
  • express学会CRUD
    使用express搭建项目1==>express项目名-e2==>然后按照提示就可以了cd项目名3==>进入项目下载依赖cnpmi4==>启动项目nodemonapp.js5==>添加监听端口......