使用session和cookie存储用户登录信息

1.配置静态资源

下载session模块npm install express-session -s
导入session,保存在服务器,传的内容是session在服务器中的内存地址

const session =require("express-session")

下载cookie模块npm install cookie-parser -s
导入cookie,保存在客户端硬盘上,传的内容是用户基本信息

const cookie=require("cookie-parser")

使用cookie模块

app.use(cookie())

使用session模块

app.use(session({
    name:"demo",//session名称
    secret:"1234",//session密钥
    resave:true,//重新保存
    rolling:true,//失效时间
    cookie:{maxAge:60000},//最大时效时间,单位为毫秒
    saveUninitialized:true//保存
}))

2.在控制器中,使用session保存用户信息

//用户登录验证
userLogin(req,resp) {
        let {userName,pwd}=req.body;
        let loginArr=[userName,pwd]
        userDao.selectUser(loginArr,function (err,data) {//err:获取数据操作的错误信息
            if(data.length>0){
                //登陆成功
                let userInfor={name:userName,pwd:pwd}
                req.session.data=userInfor//保存用户信息
                resp.redirect("/page/index.html")//重定向
            }else{
                //登录失败
                resp.redirect("login.html")//重定向
            }
        })
    }
//获取用户数据信息
getName(req,resp){
        resp.send(req.session.data)
 }

3.使用路由拦截用户访问请求

//拦截访问登录页面的请求
router.get("/login.html",function (req,resp) {
	 //如果缓存里有登录信息,直接进入主页
    if(req.session.data){
        resp.redirect("/page/index.html")//重定向
    }else {
        // 没有登录的情况下,请登录
        resp.sendFile(__dirname)
    }
})
//拦截访问主页面的请求
 router.get("/page/*",function (req,resp,next) {
   if(req.session.data){
        // 返回对应的页面
        next()
    }else {
        // 没有登录的情况下,请登录
        resp.redirect("/login.html")
    }
})
//拦截主页获取用户信息的请求
router.post("/getName.do",userCtrl.getName)

4.在主页中获得缓存中的用户信息


你可能感兴趣的:(AJAX)