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 登录后 修改密码
随机推荐
- SecSolar:为代码“捉虫”,让你能更专心写代码
摘要:在"更健壮.更安全"的路上,CloudIDE又迈出了关键的一步:推出了代码安全检测服务SecSolar,以轻量插件的形式,为代码"捉虫",帮助企业和开发者 ...
- 深度解读鸿蒙轻内核CPU占用率
摘要:CPUP(Central Processing Unit Percentage,CPU占用率)分为系统CPU占用率和任务CPU占用率.用户通过系统级的CPU占用率,判断当前系统负载是否超出设计规 ...
- 火山引擎VeDI最新分享:消费行业的数据飞轮从“四更”开始
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据飞轮,正在为消费行业的数字化升级提供一套全新模式. 在刚刚结束的<全链路增长:数据飞轮转动消费新生力 ...
- 【已解决】Uiautomatorviewer报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationT...
报错 使用Uiautomatorviewer连接真机报错Unexpected error while obtaining UI hierarchy (获取UI层次结构时出现意外错误) android8 ...
- JDk 与 ADB 环境变量配置
### Java环境变量配置 首先,JDK是整个Java的核心,包括了Java运行环境,一推Java工具和Java基础的类库. 网址:https://www.oracle.com/technetwor ...
- 一个非常轻量级的 Web API Demo
一个非常轻量级的 Web API Demo,代码量很少,实现了方法拦截器,token校验,异常拦截器,缓存 创建项目:如果选择Web API,项目中东西会比较多,这里选择Empty,把下面的Web A ...
- OS | 读者写者问题(读者优先,写者优先 ,读写公平)
读者优先 读者优先的解决方案: 互斥信号量 wrt,初值是 \(1\),代表一个共享文件,解决 "读-写"互斥,"写-写"互斥. 一个记数器,即整型变量 rea ...
- 方法记录 | 文件批量导入Goodnotes
一般来说通常资料都是用网盘下载了很多文件,想用Goodnotes来写批注,记笔记等,但是由于网盘不能直接分享.也不能批量分享到Goodnotes,给学习带来了很大的麻烦. 当然有钱的大佬们呢直接开了 ...
- 命令行状态下切换盘符 cd 跨盘
这个经常忘记,在这记下来 cd /d d: 就是加上/d参数
- SpringBoot 配置类解析
本文首发于 vivo互联网技术 微信公众号链接:https://mp.weixin.qq.com/s/NvPO5-FWLiOlrsOf4wLaJA作者:Li Wanghong SpringBoot作为 ...