반응형
*req.isAuthenticated() always false
로그인 시 form이 아닌 ajax로 메소드 호출 시 req.isAuthenticated() 함수가 동작하지 않는다. req.user 에도 정보가 담기지 않는다. (전체 예제는 따로 정리해서 올리겠습니다.) 핵심은 req.login() 함수를 직접 호출해서 해결 할 수 있습니다.
http://www.passportjs.org/docs/login/
// Front
$.ajax({
url:'/users/login',
xhrFields:{
withCredentials: true
},
type:'POST',
data:{username:id,password:pw},
dataType:'json',
success:function(data){
// success 처리
},error: function(err){
// error 처리
}
})
// Back
router.post('/login', async function (req, res, next) {
passport.authenticate("local-login", function (error, user, info) {
if (error) {
return res.status(500).json(error);
}
if (!user) {
return res.status(401).json(info.message);
}
req.login(user, function (err) {
if (err) { return next(err); }
return res.json(user);
});
})(req, res, next);
});
반응형
'Web > node.js' 카테고리의 다른 글
Selenium Javascript Screenshot (0) | 2021.05.10 |
---|---|
nodejs readdirSync recursive (0) | 2019.06.04 |