node登陆验证(seession判断是否登陆以及密码MD5加密)

通常下,登陆通过数据库校对进行判断登陆是否正确,在登陆页登陆后,登陆所以页面都会提示已经成功登陆(session),下面看一下结合MD5加密校对数据库用户登录,以及session判断用户登录状态!

案例代码:

var express=require("express");
var db=require("./models/db.js")
var app=express();
var md5 = require('md5');
var session = require('express-session');
//session中间件
app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true
}))
app.set("view engine","ejs")
app.get("/login",function(req,res){
    res.render("login");
})
//首页登陆状态匹配
app.get("/",function(req,res){
    console.log("123123:::"+md5("123456"));
    console.log("abc123::"+md5('abc123'));
    console.log("123456:::"+md5("123456"));
    if(req.session.sid=="111"){

        res.send("尊敬的用户:"+req.session.user+"您已经成功登陆")
    }else{
        res.send("亲爱的游客,您尚未登陆")
    }
})
app.get("/dologin",function(req,res){
    //获取用户输入的信息,密码已md5方式进行校验
   var inuser=req.query.user;
   var inpwd=md5(req.query.pwd);
   console.log(typeof  req.query.pwd);
   console.log(inpwd)
   //比对数据库信息
    db.find("users",{"user":inuser},function (err,doc) {
        //查找信息不存在情况
        if(doc.length==0){
            res.send("用户名不存在,请核实后重新尝试登陆!");
            return;
        }
        if(doc[0].pwd==inpwd){
            //数据库中密码和用户输入相同,登陆成功
            req.session.sid="111";
            req.session.user=doc[0].user;
            res.send("尊敬的用户:"+doc[0].user+"登陆成功");
            return;
        }else{
            //数据不匹配,密码错误
            res.send("登陆失败,你输入的密码不正确,请重新输入");
            return;
        }

    })

})
app.listen(3000)

   使用session需要先引入第三方npm包,以及进行sessoin的初始化(中间件作用)

var session = require('express-session');
//session中间件
app.use(session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: true
}))

由于获取到用户的密码进行转md5后,与数据库存储的密码(MD5格式)进行对比,判断用户密码是否正确,因此折腾需要md5加密,引入转换的md5包

var md5 = require('md5');
//md5使用也极其简单
console.log(md5(123);则返回123的md5码,注意:123和"123"由于数据类型不同返回md5加密也不一样,因此需要注意
返回32位加密,字母小写

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT开发技术与工作效率

Eclipse Alt+/插入自定义代码段教程

1332
来自专栏云计算教程系列

如何在FreeBSD 10.1上安装MongoDB

MongoDB是一个免费的开源NoSQL数据库。它是当今Web应用程序中最常用的数据库之一,因为它在数据库模式设计中提供了高性能,可伸缩性和大量灵活性。在本教程...

1570
来自专栏nice_每一天

上传本地代码及更新代码到GitHub教程

转自 :https://www.cnblogs.com/zlxbky/p/7727895.html

1092
来自专栏Youngxj

网站防拦截攻略二:调用默认浏览器

6143
来自专栏Python与爬虫

如何获取小程序的源代码

准备工作 手机已经root adb.exe 已经放到了系统环境变量,也就是打开cmd 后输入 adb不会报错,如下图 ? 手机能连上电脑,并且手机开启us...

1.1K14
来自专栏不想当开发的产品不是好测试

性能测试 -- 实际例子

1、环境申请搭建,压测机器的申请; 2、压测场景设计和思考; 3、压测脚本的编写和修改; 4、压测开始,调试,开始正式压测; 5、压测结果分析,定位问题,重新压...

2305
来自专栏张伟博客

netsh命令实现计算机本地端口转发(端口映射)

2144
来自专栏智能合约

node.js调用webservice遇到的问题

2315
来自专栏云计算教程系列

如何在Debian 9上安装NFS共享

网络文件系统(NFS)是一种文件系统协议,允许类Unix系统的用户通过网络访问文件,就像使用本地存储一样。这对于跨Internet上的多个腾讯云CVM服务器或其...

1681
来自专栏java架构师

java基础-servlet-1

servlet,是运行于服务器端的小程序。它既可以运行在http服务器端,也可以运行在mail等其他服务器端。我是这样理解,tomcat把接收到的客户端请求,转...

2696

扫码关注云+社区

领取腾讯云代金券