expres实现登录与修改密码
登录模块
如果登录的时候,昵称在数据库中查询的是不唯一值。需要提示用户登录失败。
即使用户密码输入正确。
然后将该消息通知相关人员,立即进行排查问题。
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);
});
}
expres实现登录与修改密码的更多相关文章
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...
- openfire Android学习(一)----实现用户注册、登录、修改密码和注销等
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...
- node+mysql+express实现登录/注册/修改密码/删除用户 接口
实现用户的注册.登录.修改密码.删除用户操作 用到的数据库:nodecms:表:user 目录结构: db目录下存放数据库操作语句: userSQL.js 用户有关的操作语句 router目录 接口路 ...
- 使用手机登录OWA修改密码的问题
最近发现使用手机端登录OWA,安卓手机是可以修改密码的,如图1,但是iPhone就不成,safari和第三方都不可以,如图二. 图一 图二
- Mysql 免密码登录,修改密码及忘记密码操作
----免密码登陆 方式一 my.cnf增加[client]标签 [client] user="root" password="你的密码" 单对定义不同的客户端 ...
- 测试点常用用例设计(登录、修改密码、输入框、上传视频、XSS、URL篡改)
1.无效-视频文件测试点: 视频大小过大 视频大小过小 视频名称过长 视频名称包含特殊字符 视频名称包含中文.中英混合 视频文件格式错误 视频文件重复性上传 2.有效-视频文件测试点: 选择符合要求的 ...
- Web实现数据库链接的登录注册修改密码功能
/** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version ...
- Email接收验证码,以实现登录/注册/修改密码
要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...
- mysql免密登录和修改密码
(1)停止mysql服务 /etc/init.d/mysqld stop (2)跳过密码验证 mysqld_safe --skip-grant-tables & ( ...
- mysql 登录后 修改密码
随机推荐
- 一文详解特权访问管理(PAM)
什么是特权访问管理(PAM)? 特权访问管理(Privileged Access Management)是一个包含网络安全策略和访问管理工具的解决方案,用于控制和监管和保护具有特权访问权限的用户.在之 ...
- 火山引擎DataTester分享:A/B实验中常见的8个错误
火山引擎DataTester是科学可信的A/B测试与智能优化平台,源自字节跳动长期沉淀,能够深度耦合推荐.广告.搜索.UI.产品功能等多种行业场景需求,为业务增长.转化.产品迭代,运营提效等各环节提供 ...
- PPT 动画-旋转唱片
插入图片.同心圆 按Shift 先点击背景图片,再点击 同心圆 合并形状,选择相交 设置动画,选择 陀螺旋,持续时间为 8秒, 打开计时窗口,重复为:直到幻灯片末尾
- 断点续传(上传)C#版
断点续传(上传)Java版 1. 客户每次上传前先获取一下当前文件已经被服务器接受了多少 2. 上传时设定偏移量 服务端代码如下: /// <summary> /// 断点续传,获取已上传 ...
- web自动化-selenium携带cookie免密登录
在我们做web自动化的时候,经常会遇到含有登录的页面,我们必须登录之后才能够对我们想要操作的页面元素进行定位,也就是说所有的操作都在登录前提下,其实没必要每次请求都先登录,当我们登录成功了,会在coo ...
- 多图预警,DreamBooth 微调黑客松结果发布啦!
去年 12 月底,我们面向全球的开发者举办了 DreamBooth 编程马拉松活动.通过 DreamBooth,你可以使用少量的图像对文生图模型进行微调,将你「喂给」模型的图片信息进行命名,就可以通过 ...
- redis管道技术pipeline一 ——api
import java.io.UnsupportedEncodingException; import java.util.Set; import org.springframework.beans. ...
- BOM概述
- distributor和gateway联合实现出中继的负载均衡+故障转移
概述 freeswitch是一款简单好用的VOIP开源软交换平台. 在之前的文章,我们介绍过distributor模块实现多线路分发的配置方法,但是当线路发生故障时,distributor并不会自动跳 ...
- java进阶(15)--DecimalFormat、BigDecimal
一.DecimalFormat(数字格式化) 1.数字格式化的表示: (#) 代表任意数字 (,)代表千分位 (.)代表小数 (0)代表不够时补0 2.示例