var express = require('express');
var router = express.Router();
var mongodb = require("../../utils/mongodb")
var bcrypt = require("../../utils/bcrypt")
var jwt = require("../../utils/jwt")
/* GET home page. */
router.post('/', function(req, res, next) {
//1.获取前端传递来的用户名与密码
let {username,password} = req.body
//2.验证必传参数
if(!username || !password){
res.send({
err:1,
msg:"用户名与密码为必传参数..."
})
return
}
//3.需要查询数据库
mongodb.open({
collectionName:"user"
}).then(({collection,client})=>{
//进行查询操作
collection.find({username}).toArray((err,result)=>{
if(err){
res.send({err:1,msg:"集合操作失败..."})
client.close()
}else{
if(result.length>0){
//3-1 代表用户在数据库是存在的 ==> 登录的密码与数据库里面的密码进行校验 ==> 登录成功(token)
let flag = bcrypt.compareSync(password,result[0].password)
if(flag){ //说明密码输入正确
//生成token令牌
let token = jwt.sign({username,_id:result[0]._id})
delete result[0].username
delete result[0].password
res.send({
err:0,
msg:"恭喜您,登录成功!",
token,
data:result[0]
})
}else{
res.send({err:1,msg:"用户名或者密码输入有误..."})
}
client.close()
}else{ //3-2 用户在数据库里面不存在
res.send({err:1,msg:"此用户不存在,请注册!"})
client.close()
}
}
})
}).catch(err=>{
res.send({err:1,msg:"数据库连接失败..."})
})
});
module.exports = router;
node.js写登录接口
最新推荐文章于 2024-07-03 09:23:34 发布