【问题标题】:setting the cookie in a session在会话中设置 cookie
【发布时间】:2013-02-07 21:00:22
【问题描述】:

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

2)看起来我实际上是直接设置值,而不是: app.use(express.cookieParser('键盘猫')); 在这里有用。问题是如果我没有这个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 存储在本地内存中......

【问题讨论】:

    标签: cookies express


    【解决方案1】:

    这个 sn-p 展示了我们如何使用基于 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');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-14
      • 2019-11-18
      • 2013-11-19
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      相关资源
      最近更新 更多