如何在服务器端的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");
});
答案 0 :(得分:0)
有不同的方法可以做到这一点。
解决方案可以在客户端使用set cookie来管理会话。为此,您可以使用client-session
包。要查找有关此方法安全性的更多详细信息,并了解有关使用express
软件包的更多详细信息,请参阅this post。