메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

문제:

logout.js

router.get('/', (req, res) => {

req.session.destroy();

res.redirect('/login');

});

 

login.js

if (result[0] !== undefined) {

// 로그인에 성공하였으므로 세션을 할당

req.session.uid = result[0].uid;

req.session.username = result[0].username;

req.session.is_admin = result[0].is_admin;

res.redirect('/main');

}

 

위와 같은 코드가 있을 때 가끔씩 로그인을 했는데도 세션이 제대로 반영되지 않아 로그인 후 로그인 페이지가 표시되어 새로고침을 해야 하거나, 로그아웃 버튼을 두 번 눌러야 로그아웃 되는 문제가 발생함.

 

해결:

logout.js

router.get('/', (req, res) => {

req.session.destroy(err => {

if (err) throw err;

res.redirect('/login');

});

});

리다이렉트 하는 처리를 session.destroy() 내부에서 실행.

 

login.js

if (result[0] !== undefined) {

// 로그인에 성공하였으므로 세션을 할당

req.session.uid = result[0].uid;

req.session.username = result[0].username;

req.session.is_admin = result[0].is_admin;

req.session.save(err => {

if (err) throw err;

console.log(`Logged as ${result[0].username}`);

res.redirect('/main');

});

}

리다이렉트 하는 처리를 session.save() 내부에서 실행.

조회 수 :
4
등록일 :
2024.02.07
14:23:04 (*.168.186.88)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=822463
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
5 love2d에서 안드로이드 터치 제스처 인식하기 노루발 20   2020-11-12 2020-11-12 00:38
-- 안드로이드/iOS 등등의 터치스크린 입력을 받는 기기에서는 총 3가지의 콜백 함수를 사용한다: -- love.touchpressed / love.touchmoved / love.touchreleased -- 다만 위 3가지 함수는 마우스 클릭으로는 발생하지 않으므로 추가적인 처리가 필요하다. -- ...  
4 certbot을 이용한 HTTPS 인증서 발급 및 적용 노루발 18   2021-01-12 2021-01-12 16:57
snap 설치 및 업데이트 sudo snap install core; sudo snap refresh core certbot 설치 sudo snap install --classic certbot 심볼릭 링크 생성 sudo ln -s /snap/bin/certbot /usr/bin/certbot nginx에 맞춰 자동 설정 sudo certbot --nginx 알아서 다 해주기...  
3 리캡챠 적용 [1] 노루발 11   2021-01-08 2021-01-11 12:15
XE 회원가입 시 구글 리캡챠 인증 추가하기 : 네이버 블로그 (naver.com)  
2 Bootstrap4 container class가 적용된 div의 양 옆에 설정하지 않은 margin이 생김 노루발 5   2024-02-07 2024-02-07 14:25
문제: <div class="container"> TEST </div> 위와 같은 페이지를 브라우저에서 렌더링 시 div의 양 옆에 설정하지 않은 빈 margin이 생김. 해결: <div class="container-fluid"> TEST </div> margin을 0으로 주고 width를 100%로 주고 등등 별걸 다 해봤는데 ...  
» express.js 세션 적용 후 리다이렉트 시 세션 적용이 제대로 안 되는 문제점 노루발 4   2024-02-07 2024-02-07 14:23
문제: logout.js router.get('/', (req, res) => { req.session.destroy(); res.redirect('/login'); }); login.js if (result[0] !== undefined) { // 로그인에 성공하였으므로 세션을 할당 req.session.uid = result[0].uid; req.session.us...