2016-06-22 21 views
10

나는 hapijs에서 jwt 플러그인과 전략을 사용하고 있습니다. 사용자 로그인시 jwt 토큰을 생성하고 'jwt'전략을 통해 동일한 토큰을 사용하여 다른 API를 인증 할 수 있습니다. USER_SESSION이 토큰 이름 인 쿠키로 'request.state.USER_SESSION'에 토큰을 설정합니다. 또한 데이터베이스에 이러한 토큰을 저장하지 않을 것입니다. 하지만 로그 아웃 할 때 jwt 토큰을 어떻게 파괴 할 수 있습니까? 제발 방법을 제안 해주세요.로그 아웃시 JWT 토큰을 파괴하는 방법은 무엇입니까?

답변

14

JWT는 브라우저에 저장, 그래서 당신이 만료 시간 이전에 서버 측에서 토큰을 무효화하는 것이 필요한 경우, 예를 들어 삭제/차단/정지 계정

클라이언트 측에서 쿠키를 삭제 토큰을 제거한다 암호 변경, 권한 변경, 관리자에 의한 사용자 로그 아웃, 블랙리스트 작성 또는 토큰 회전과 같은 일부 공통 기술에 대해서는 Invalidating JSON Web Tokens을 참조하십시오.

+0

답변에 동의합니다. reply.state ('USER_SESSION', {jwtToken});에 의해 쿠키에 jwt 토큰을 설정하고 있습니다. 여기서 USER_SESSION은 쿠키 이름입니다. hapijs의 상태에서 쿠키를 삭제하기 위해 어떤 명령을 실행해야합니까? – Garima

+0

서버 측에 있으므로 브라우저에서 쿠키를 강제로 삭제할 수 없습니다. 그러나 값을 비어있게 설정하고'expires' 필드를 포함시켜 쿠키 값을 무효화 할 수 있습니다. http://stackoverflow.com/questions/5285940/correct-way-to-delete-cookies-server-side를 참조하십시오. 또한 자바 스크립트로 클라이언트 측의 쿠키를 무효화 할 수 있습니다. var delete_cookie = function (name) { document.cookie = name + '=; 만료 = 1970 년 1 월 1 일 00:00:01 GMT;'; }; ' – pedrofb

+0

고마워요! 나는 당신의 대답에 만족합니다. – Garima

관련 문제