[英]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.