繁体   English   中英

设置为req并在另一条路线中访问

[英]set to req and access in another route

我的用户必须先登录才能访问任何路由,但为什么在第二条路径res.username未定义?

router.post('/login', passport.authenticate('local'), function(req, res) {
    res.username = req.user.name;
    res.json({result:1,username:req.user.name}); //work
});

router.post('/some_other_route', function(req, res, next) {
    console.log(res.username) // undefined
})

我正在使用带护照的快速中间件。

如果正确使用express-session ,则应使用req.session.username = req.user.name;

这是链接: https//github.com/expressjs/session

req.session

To store or access session data, simply use the request property req.session, which is (generally) serialized as JSON by the store, so nested objects are typically fine. For example below is a user-specific view counter:

// Use the session middleware
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))

// Access the session as req.session
app.get('/', function(req, res, next) {
  var sess = req.session
  if (sess.views) {
    sess.views++
    res.setHeader('Content-Type', 'text/html')
    res.write('<p>views: ' + sess.views + '</p>')
    res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>')
    res.end()
  } else {
    sess.views = 1
    res.end('welcome to the session demo. refresh!')
  }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM