我是整个节点的新手,并且密码很吸引人,并且对于许多身份验证似乎都很有效,因此看起来很酷。
场景:我想说,/ profile仅在用户登录后才能继续。
这是我走的路线
var express = require('express');
var router = express.Router();
其余的位于名为router / index.js的文件中
var passport = require('passport');
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
router.post('/login', passport.authenticate('login', {
successRedirect: '/home',
failureRedirect: '/',
failureFlash : true
}));
router.get('/profile', ensureLoggedIn('/'), function(req, res){
res.json({ user: req.user });
});
因此,根据我的理解和意愿,当我执行GET / profile时,它必须转到登录页面,然后重定向到GET / profile。不幸的是,由于登录页面应该返回首页,所以它确实返回了首页。
我希望解决问题时可以使用connect-ensure-login,但事实并非如此。如何使其按需工作?
您应该使用successReturnToOrRedirect
而不是successRedirect
:
router.post('/login', passport.authenticate('login', {
successReturnToOrRedirect : '/home',
failureRedirect : '/',
failureFlash : true
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句