[英]set to req and access in another route
My user have to login before he can access any route, but why in the second route res.username is undefined? 我的用户必须先登录才能访问任何路由,但为什么在第二条路径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
})
I'm using express-session middleware with passport. 我正在使用带护照的快速中间件。
If you use express-session
correctly, you should use req.session.username = req.user.name;
如果正确使用express-session
,则应使用req.session.username = req.user.name;
. 。
Here is the link: https://github.com/expressjs/session 这是链接: https : //github.com/expressjs/session
req.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.