Nuxt.js与护照失去req.user

我正在努力使用Nuxt.js和Passport.js Node.js应用程序。 我用vuexlogin并设置用户数据。

行动:

nuxtServerInit ({ commit }, { req }) { if (req.session && req.session.authUser) { commit('SET_USER', req.session.authUser) } } 

突变:

 SET_USER: function (state, user) { state.authUser = user } 

它工作正常,但是当我试图访问页面,只能通过loged用户访问出现问题。

 axios.get('http://localhost:3000/api/articles/add') router.get('/api/articles/add', ensureAuthenticated, (req, res) => { res.send({ title: 'Add Article' }) }) function ensureAuthenticated (req, res, next) { if (req.isAuthenticated()) { return next() } else { res.redirect('/users/login') } } 

我login并进入http:// localhost:3000 / articles / add ,为此用户请求数据限制(GET http:// localhost:3000 / api / articles / add )。 通过ensureAuthenticated检查,如果用户被locking, isAuthenticated()将始终返回false ,当我想发送用户数据,而不ensureAuthenticated则返回undefined

 app.get('/api/articles/add', (req, res) => { res.send(req.user) // undefined }) 

但如果我将这个数据发送到页面,我想要访问相同的API路线,我得到正确的数据在屏幕上。

 app.get('/articles/add', function(req, res) { res.send(req.user) // {...} }) 

有人能解释我吗? 而在某些情况下,我无法从node.js端进行redirect。 就像在这个例子中

 function ensureAuthenticated (req, res, next) { if (req.isAuthenticated()) { return next() } else { res.redirect('/users/login') // ignored } }