в чем разница между JWT и сеансовым файлом cookie, когда я хочу аннулировать токен JWT?

когда я прочитал документацию JWT, я понял, что нам не нужно использовать сеанс для сохранения пользовательских данных, потому что он зашифрован в заголовке запроса, и на самом деле JWT не имеет состояния.

Но я хочу удалить токен JWT, если мой пользователь деактивирован.

В этом случае в моем промежуточном программном обеспечении JWK после проверки токена я должен получить запрос в моей mongoDB для проверки, активен или неактивен этот пользователь.

так что это не без гражданства, и, с другой стороны, это большая перегрузка для mongoDB, потому что mongoDB не является хорошей базой данных для сохранения сеанса!! поэтому мне нужен Redis .. и если я хочу использовать Redis, в чем разница между сеансом, файлом cookie и JWT?


person hossein derakhshan    schedule 06.09.2017    source источник


Ответы (1)


Как вы упомянули, токен JWT может нести произвольную информацию, связанную с пользователем. Связь остается без сохранения состояния, поскольку сервер не помнит, в каком состоянии находился этот конкретный клиент во время предыдущего запроса. Вы должны предоставлять контекст с каждым запросом, который вы делаете в форме токена JWT.

Пока контекст небольшой, можно поместить все это в токен. Когда контекста много, его передача с каждым запросом может быть уже не оптимальной. Это когда вам нужно переключиться на сохранение состояния на бэкенде.

В этом отношении JWT и файлы cookie являются аналогичными механизмами переноса контекста между запросами. Они оба подвержены ограничению размера, когда вам нужно решить, следует ли использовать внутреннее хранилище сеансов для уменьшения размера данных, передаваемых в каждом запросе.

person Nic Nilov    schedule 06.09.2017
comment
спасибо .. не могли бы вы прочитать этот вопрос? .com/questions/46069698/ - person hossein derakhshan; 06.09.2017