나는 [email protected]와 [email protected]를 사용하고 로컬 srategy를 인증에 사용하고 있습니다. 인 (은 3.0과 여권 인증
모든 것이 잘 작동하는 것 같다 그것은 성공과 제대로 실패
app.post('/login', passport.authenticate('local', { failureRedirect: '/' }),
function(req, res) {
console.log(req.isAuthenticated()); // true
res.redirect('/users/' + req.user.id);
});
에 리디렉션하지만 프로필 노선에 ensureAuthenticated를 추가하면
app.get('/users/:id', ensureAuthenticated, routes.user);
function ensureAuthenticated(req, res, next) {
console.log(req.isAuthenticated()); // false
if (req.isAuthenticated()) { return next(); }
res.redirect('/');
}
는 '/'로 다시 저를 리디렉션 로그인 페이지) 대신 '/ users/id'(사용자 프로필)을 입력하십시오. 문제는 req.isAuthenticated()가 항상 false를 반환하고 디버그에 req.user 변수가 없다는 것입니다.
익스프레스 3 및 여권 상호 작용에 문제가 있습니까? 아니면 제가 잘못 했습니까?
그것을 사용하는 sipmlest 방법이며 아무것도 변경되지 않습니다 . 여전히 req.isAuthenticated()가 false 인 경우 '/ login'에 redirectin을 '/'rout에 추가하면 req.isAuthenticated()가 항상 false이므로 잘못된 라우팅이 발생합니다. – Yuri
오, 안돼! 사실 지금은 사실이지만 리디렉션이 잘못되었습니다. app.get ('/ profile', ensureAuthenticated, routes.profile); – Yuri
예, ensureAuthenticated를/login 경로에 두지 마십시오. 그리고 ensureAuthenticated 함수에서/login으로 리디렉션합니다. – jabbermonkey