2017-06-15 9 views
1

サーバー側のNode.jsでセッションを管理する方法。 私はpackage.jsonnode.jsのセッションを管理するには

{ 
    "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

のためにこれを行うには別の方法がありますが、ことでしようとしています。 解決策は、セッションを管理するためにクライアント側でセットクッキーを使用することができます。これを行うには、client-sessionパッケージを使用します。この方法のセキュリティの詳細については、expressパッケージの使用方法の詳細については、this postをご覧ください。