2017-04-26 2 views
1

JWT는 사용자 상태가 서버 메모리에 저장되지 않으므로 상태 비 저장 인증 메커니즘입니다.JWT 및 사용자 차단

관리자가 일부 resons를 차단 한 경우 토큰을 무효화하는 방법은 무엇입니까?

답변

1

JWT는 인증 메커니즘이 아니라 토큰 형식입니다. JWT는 자체 완비되어 있으므로 무국적 인증에 사용할 수 있습니다. 그러나 이는 인증 메커니즘이 무국적이어야한다는 것을 의미하지 않습니다 (이점은 있지만). 사용자가 잠긴 경우

  • 액세스 토큰이 예상된다 확인하기 위해 JWT를 검증 한 후

    • 는 모든 요청에 ​​사용자의 조회를 수행합니다

      /취소 권한 사용자 잠금을 처리하기위한 몇 가지 옵션이 있습니다 (즉, 새로 고침 토큰을 사용하여) 새로운 액세스 토큰이 요청 된 다음에 사용자를 검색 한 다음 새 액세스 토큰을 발급하는 것을 거부 할 수 있습니다.

    • 또는 발급 된 모든 토큰을 블랙리스트에 추가 할 수 있습니다 데이터베이스에 토큰의 jti을 저장하여 특정 사용자에게 exp 시간을 초과했을 때 블랙리스트에 등록 된 항목). 또한 : https://auth0.com/blog/blacklist-json-web-token-api-keys/
    • 요청이있을 때마다 특정 JWT로 식별 된 사용자를 찾거나 JWT의 수명 중 X %가 경과 할 때마다 조회 할 수 있습니다.

    이러한 접근법 중 어느 것도 완전히 무 상태입니다. 일반적으로 권한을 취소 할 수 있기를 원한다면 무국적 인증은 불가능합니다. 토큰의 상태를 완전히 없애려면 수명이 가능한 한 짧아야하며 새 토큰을 발행하는 것은 stateless가 아니어야합니다.

  • +1

    이 경우 JWT를 사용하는 이유, 고유 한 문자열/토큰을 생성하고 모든 요청에서 토큰을 확인하면 어떤 이점이 있습니까? – Romper