在node.js中管理会话

时间:2017-06-15 12:11:28

标签: node.js

如何在服务器端的Node.js中管理会话。 我正在尝试,对于package.json

{
    "name": "Node-Express4-Session",
    "version": "0.0.1",
    "main": "server.js",
    "dependencies": {
        "body-parser": "^1.7.0",
        "ejs": "^1.0.0",
        "express": "^4.8.7",
        "express-session": "^1.7.6"
    }
}

<html>
<head>
<title>Session Management in NodeJS using Express4.2</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script>
$(document).ready(function(){
    var email,pass;
    $("#submit").click(function(){
        email=$("#email").val();
        pass=$("#password").val();
        /*
        * Perform some validation here.
        */
        $.post("http://localhost:3000/login",{email:email,pass:pass},function(data){        
            if(data==='done')           
            {
                window.location.href="/admin";
            }
        });
    });
});
</script>
</head>
<body>
<input type="text" size="40" placeholder="Type your email" id="email"><br />
<input type="password" size="40" placeholder="Type your password" id="password"><br />
<input type="button" value="Submit" id="submit">
</body>
</html>

req,res){
  sess = req.session;
if(sess.email) {
res.write('
<h1>Hello '+sess.email+'</h1>
');
res.end('<a href="+">Logout</a>');
} else {
    res.write('
     <h1>Please login first.</h1>
    ');
    res.end('<a href="+">Login</a>');
}
});

app.get('/logout',function(req,res){
req.session.destroy(function(err) {
  if(err) {
    console.log(err);
  } else {
    res.redirect('/');
  }
});

});
app.listen(3000,function(){
console.log("App Started on PORT 3000");
});

1 个答案:

答案 0 :(得分:0)

有不同的方法可以做到这一点。 解决方案可以在客户端使用set cookie来管理会话。为此,您可以使用client-session包。要查找有关此方法安全性的更多详细信息,并了解有关使用express软件包的更多详细信息,请参阅this post