1

我正在设置一个 cookie 并访问它。当我执行 console.log 时,它不显示任何内容。但是当我在浏览器上看到 cookie 时,我可以看到这个值。我想检查 cookie 是否为 1。如果是 1,则继续,否则将其删除。但我在访问此值时遇到问题。

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

如果你能让我知道我在快速 url 中缺少关于 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 存储在本地内存中,并且..

4

1 回答 1

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');
}
于 2013-02-07T12:39:42.253 回答