专栏首页十月梦想node登陆验证(seession判断是否登陆以及密码MD5加密)

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 条评论
登录 后参与评论

相关文章

  • Express框架之中间件(一)

    如果我的的get、post回调函数中,没有next参数,那么就匹配上第一个路由,就不会往下匹配了。

    十月梦想
  • nodejs+express实现用户登录,注册以及退出操作

    先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

    十月梦想
  • 包含文件include,require,include_once,require_once

    include,require,include_once,require_once四种都是包含文件请求

    十月梦想
  • 鸿蒙 线程讲解(任务分发、线程通信)

      说起鸿蒙的线程就不得不说Android的线程,相信都知道在Android中,每一个应用都会有自己的主线程和其他的子线程,主线程负责处理大部分业务,负责UI的...

    晨曦_LLW
  • 聊聊skywalking的metric-exporter

    skywalking-6.6.0/oap-server/exporter/src/main/proto/metric-exporter.proto

    codecraft
  • Python 多进程程批量爬取小

    python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包...

    andrew_a
  • JavaWeb之MVC模式

    一、什么是MVC设计模式? MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Mode...

    用户1195962
  • 聊聊skywalking的metric-exporter

    skywalking-6.6.0/oap-server/exporter/src/main/proto/metric-exporter.proto

    codecraft
  • 模拟登录?一文为你排忧解惑!

    通过前两天的小demo,大家是不是对Spider有了进一步的了解。是不是感觉通过短短几行代码就能够获取并保存我们想要保存的内容就很神奇,其实这些都没什么。总之,...

    不温卜火
  • Cookie禁用了,Session还能用吗?

    Cookie与Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案。 Cook...

    joshua317

扫码关注云+社区

领取腾讯云代金券