2016-10-20 12 views
1

평균 앱을 개발 중입니다. 문제는 JWT에서 생성 한 토큰을 파괴하고 싶다는 것입니다. 지금로그 아웃시 JWT 토큰 파괴

router.get('/logout', function(req, res) { 
    req.logOut(); 
    res.status(200).json({ 
    status: 'Bye!' 
    }); 
}); 

하지만 "req.logOut는()"토큰에 아무것도하지 않고 단지 여권 함수 것을 깨달았다 : 처음에 나는 로그 아웃 기능은 작업을 것이라고 생각했다.

클라이언트의 토큰을 요청 헤더에 보내므로 사용자가 토큰을 다른 곳에 저장 한 경우 로그 아웃 할 때 토큰이 요청에 포함되어있는 경우 사용자는 여전히 앱에 액세스 할 수 있습니다. 그래서 내 질문은 다음과 같습니다. 토큰을 어떻게 파괴합니까? 어딘가에 "저장"되어 있습니까? 그것은 자동으로 파괴 되었습니까?

답변

3

간단한 JWT 토큰을 삭제하는 방법을 찾지 못했습니다. 그러나 귀하의 문제를 해결할 제안이 있습니다.

각 세션마다 토큰을 DB에 보관할 수 있습니다. 따라서 'token from DB'와 'client request header'의 토큰을 비교하여 클라이언트 요청을 확인할 수 있습니다. 로그 아웃하는 동안 토큰 양식 DB를 제거 할 수 있습니다. 따라서 로그 아웃 후 사용자는 앱에 액세스 할 수 없습니다.

관련 문제