2016-01-05 7 views
2

Я не уверен, что полностью понимаю понятия о том, как должна работать надлежащая аутентификация JWT. Я нашел статью о JWT Authentication, где автор говорит, что:JWT Аутентификация и проверка пользователя

..the token is self-contained, so the client just need to resend to the server for each request, and the server just have to check the signature to ensure its validity. No more useless call to database or LDAP. 

Я немного обеспокоен разговорник Нет более бесполезного вызова базы данных или LDAP

Но как проверить, например, что User все еще существует в системе или User не был запрещен, и этот токен был истек истек?

Похоже, мне определенно нужно позвонить в базу данных или LDAP, чтобы получить эту информацию и сравнить ее с информацией внутри токена JWT. не так ли?

ответ

3

Вы правы, что если вы ДОЛЖНЫ проверить это при каждом вызове, вам необходимо запросить базу данных или вызвать сервер авторизации.

Но дело в том, что токены JWT должны иметь достаточно короткий срок службы, чтобы вы не беспокоились об этом.

Если токен истекает каждый час, и пользователь удаляется или запрещается, он будет иметь доступ только к API в течение не более часа (или как бы то ни было время жизни токена). Затем клиенту необходимо обновить токен и выяснить, что пользователь больше не действует.

Не имея запроса, база данных или вызов службы для каждой проверки токена значительно улучшит масштаб обслуживания. Он также удаляет одну точку отказа (auth DB или service down).

+0

спасибо! У меня есть еще один вопрос - является ли JWT разумным выбором в архитектуре, когда мне нужно проверить это на каждом звонке? – alexanoid

+0

Если у вас уже есть инфраструктура для использования JWT, обязательно. Но вы не пользуетесь некоторыми преимуществами, которые это может вам дать. – MvdD

Смежные вопросы