前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >node登陆验证(seession判断是否登陆以及密码MD5加密)

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

作者头像
十月梦想
发布2018-08-29 14:39:22
1.8K0
发布2018-08-29 14:39:22
举报
文章被收录于专栏:十月梦想

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

案例代码:

代码语言:javascript
复制
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的初始化(中间件作用)

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

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

代码语言:javascript
复制
var md5 = require('md5');
//md5使用也极其简单
console.log(md5(123);则返回123的md5码,注意:123和"123"由于数据类型不同返回md5加密也不一样,因此需要注意
返回32位加密,字母小写
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-7-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 案例代码:
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档