-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
로그아웃 하고 로그인 할 때 좋아요 기능 실행되는 문제
23.05.09 00:26 작성 조회수 173
0
안녕하세요 제로초님! 게시글 좋아요 부분 듣고 다시 작성해보고 있는데
처음 로딩 시에는 좋아요 버튼 눌렀을 때 로그인 하지 않은 상태면 에러 메시지가 잘 나오는데 ( 로그인 안 하면 좋아요 못 누르게)
첫 번째 문제는 로그인 했다가 로그아웃을 한 뒤에 좋아요 버튼을 누르면 화면에는 변화가 없지만 리덕스에는 LIKE_POST_REQUEST -> LIKE_POST_SUCCESS가 되어서 이전에 로그인했던 사용자의 아이디가 LIKERS에 들어갑니다.
// middlewares.js
exports.isLoggedIn = (req, res, next) => {
if (req.isAuthenticated()) {
next();
} else {
res.status(401).send('로그인이 필요합니다.');
}
}
여기 middlewares에 콘솔을 띄어보니 로그인 했다가 로그아웃을 한 상태에서 버튼을 누르면 401에러 부분이 아니라 if ( req.isAuthenticated()) 부분이 실행됩니다.!!
// 에러 메시지 출력부분 PostCard.js
// PostCard.js
const { removePostLoading, likePostError } = useSelector((state) => state.post);
useEffect(() => {
if (likePostError) {
alert(likePostError);
}
}, [likePostError]);
// routes/user.js - 로그아웃 부분
router.post('/logout', isLoggedIn, (req, res, next) => {
req.logout((err) => {
if (err) {
return next(err);
}
});
req.session.destroy();
res.send('ok');
});
답변을 작성해보세요.
0
kyung3098
질문자2023.05.09
passport: ^0.4.1 로 되어있습니다 그런데 원래 코드 req.logout()을 고치고 로그아웃하면 똑같이 좋아요 기능이 실행됩니다!!
kyung3098
질문자2023.05.09
아하 새로고침하면 다시 로그인되어 있습니다 그러면 접속할 때 사용자 정보 로딩 액션을 실행하는 useEffect 부분을 수정하면 되나요??
답변 1