在会话中设置cookie

时间:2012-12-25 08:02:16

标签: cookies express

我正在设置cookie并访问它。 当我做console.log时它没有显示任何内容。但是当我在浏览器上看到cookie时,我可以看到它的价值。 我想检查cookie是否为1.如果是一个继续其他放弃它。但我在访问此值时遇到问题。

2)看起来我实际上是直接设置值,而不是如何: app.use(express.cookieParser('keyboard cat')); 在这里很有用问题是,如果我没有这个app.use,它将无法找到秘密。

如果你能告诉我我在遗漏网上的任何关于cookie的指示,那将会很好。

app.post('/login', function(req, res){

console.log(req.cookies.rememberme);
console.log(req.session.user);
if (req.session.user) {
    req.session.user=req.body.username;
    ss=req.session.user;
    res.cookie('rememberme', '1', { maxAge: 2000, httpOnly: true });
  } else {
    req.session.user="test";
    ss=req.session.user;
  }
res.send('viewed  times\n'+ss);
}); 

我正在寻找的是用户是否提供了正确的用户名和密码,而不是我为他分配cookie。如果已完成并且在后续请求中,用户将使用相同的cookie。 我也在研究如何将这个cookie存储在本地内存和..

1 个答案:

答案 0 :(得分:0)

此代码段展示了我们如何使用基于cookie的会话!!

var express = require('express')
  , app = module.exports = express()
  , utils = require("util");

app.use(express.cookieParser('hello !!'));
app.use(express.cookieSession({key:"remember", secret: 'testing', cookie: { maxAge: 5000}}));
app.use(express.bodyParser());

app.get('/', function(req, res, next){   

  if(req.session.user) {
     res.send('welcome ' + req.session.user + ' Click to <a href="/forget">forget</a>!.');
  } else {
      res.send('<form method="post">'
      + '<p>Username : <label><input type="texst" name="user"/></label>'
      + '<p><label><input type="checkbox" name="remember"/> remember me</label></p> '
      + '<p><input type="submit" value="Submit"/>.</p></form>');
  }

});

app.get('/forget', function(req, res){
  res.clearCookie("remember");
  res.redirect('back');
});

app.post('/', function(req, res){

  if (req.body.remember) { 
    req.session.user = req.body.user;
    console.log ( "set-cookie :" , res.get("Set-Cookie"));    
  }    
  res.redirect('back');
});

if (!module.parent){
  app.listen(3000);
  console.log('Express started on port 3000');
}