我是这个整个节点的新手,密码很有趣,似乎很适用于许多身份验证,所以看起来很酷。
场景:我想说,/ 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是我期望解决问题的方法,但它还没有。如何让它按照我的需要工作?
答案 0 :(得分:3)
您应该使用successReturnToOrRedirect
代替successRedirect
:
router.post('/login', passport.authenticate('login', {
successReturnToOrRedirect : '/home',
failureRedirect : '/',
failureFlash : true
}));