2017-12-18 15 views
-1

빠른 애플리케이션을 개발 중이며 로그인 및 로그 아웃을 구현해야합니다.로그 아웃으로 세션이 지워지지 않으면 session.destroy가 작동하지 않습니다.

로그인하는 동안 다음 코드를 사용하여 세션을 만들었습니다.

req.session.login_id = rows[0][0]["login_id"]; 
req.session.save(function(err) { 
    if(err){ 
    console.log('Error in creating session.') 
    } 
    else { 
    res.redirect('/profile') 
    } 
}) 

그러나 다음 세션 취소 작동하지 않습니다

router.get('/logout',(req,res,next)=>{ 
    req.session.destroy(function (err) { 
    if (!err){ 
     res.redirect('/') 
    }else{ 
     return next(err) 
    } 
    }) 
}) 
+1

세션 미들웨어에 모듈을 사용하고 있습니까? 그렇다면 무엇입니까? –

+0

express-session을 사용하고 있습니다 –

+0

"세션을 지우지 않습니다"라고 말하면 무슨 뜻인지 자세히 설명해주십시오. 서버에서 세션을 지우지 않는다는 뜻입니까? –

답변

1

나는이 문제에 대한 답을 찾았을 ...

문제는 MySQL의 쿼리에 있었다가 있었다 로그인에 사용 된 임시 변수 (@login_id)가 초기화되지 않고 정크 값을 포함하는 데 사용되었습니다.

는 원래 쿼리 내가

SET @login_id = NULL; SELECT login_id into @login_id from tbl_login WHERE email=in_email AND password=in_password AND status='yes';

이제 @login_id 기본적으로 NULL이며, 사용자가 유효한 경우에만 값을 포함

로 변경

SELECT login_id into @login_id from tbl_login WHERE email=in_email AND password=in_password AND status='active';

했다.