2016-08-22 1 views
1

세션 유지 관리를 위해 JWT를 사용하는 응용 프로그램을 만들고 있습니다. 새로운 사용자가 등록되면 사용자에게 JWT 토큰을 제공하고 사용자 브라우저뿐만 아니라 데이터베이스에도 저장합니다. 사용자가 로그 아웃하면 브라우저와 데이터베이스에서 해당 토큰을 삭제합니다.JWT를 사용하여 여러 장치 노드 js에 대한 사용자 세션 관리

하지만 사용자가 여러 장치에서 로그인 한 다음 한 장치에서 로그 아웃하면 다른 장치에서도 로그 아웃하지 않기를 원합니다. 이것을 어떻게 성취합니까?

+0

[JSON 웹 토큰 무효화] (http://stackoverflow.com/questions/21978658/invalidating-json-web-tokens) – DrakaSAN

답변

0

먼저 JWT는 "로그 아웃"할 수 없지만 자동으로 만료되기 때문에 짧은 expiresIn 번을 설정해야합니다.
JWT에서는 클라이언트가 세션을 처리하기 때문에 사용자를 로그 아웃하는 것이 서버의 책임이 아니기 때문에 JWT를 버리는 사용자입니다.

귀하의 경우 사용자를 허용하기 전에 DB에 JWT가 있는지 확인한 다음 해당 계정과 연결된 다른 JWT 만 검색하고 삭제하면됩니다.
그러나 물건을 깨끗하게 만들려면 JWT 논리를 사용하십시오. 단시간을 설정하고 만료 될 때까지 기다리십시오.

+0

내 데이터베이스에 토큰을 저장해야하나요? –

+0

가급적이면 안됩니다. 그러나 어떤 이유로 든 저장을 선호한다면 다른 장치를 "로그 아웃"할 수있는 방법을 제공했습니다. – DrakaSAN

+0

JWT에서는 세션이 JWT에 저장됩니다. JWT는 세션 데이터를 자주 변경해야하는 경우 적합하지 않으므로 REST API에 더 적합합니다. – DrakaSAN