Как сервер проверяет токен JWT - PullRequest
0 голосов
/ 10 сентября 2018

Как сервер проверяет токен JWT?

Где это хранится?

Как срок действия токена истекает через определенные дни?

На стороне клиента я храню токен и отправляю его на каждый запрос. Но что происходит на стороне сервера?

Может быть с какой-то записью, которая работает

Ответы [ 2 ]

0 голосов
/ 10 сентября 2018

Я не эксперт JWT, поэтому, если что-то из того, что я пишу, неверно, я очень рад, что меня исправили.

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

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

3) JWT содержит много данных, в том числе время истечения срока действия (или время, когда оно было создано, и продолжительность, как долго это действует). В дополнение к проверке токена с использованием открытого ключа сервер будет сбрасывать действительные токены, срок действия которых истек.

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

0 голосов
/ 10 сентября 2018

Это немного широкий вопрос. Я постараюсь ответить на некоторые конкретные вопросы, хотя.

Как сервер проверяет токен JWT?

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

Где это хранится?

Это зависит от клиента. В случае одностраничного приложения клиент может хранить токен в локальном хранилище или в хранилище сеанса.

Как срок действия токена истекает через определенные дни?

JWT всегда имеет время истечения, установленное в токене при его создании. А поскольку токен подписан, это время не может быть изменено кем-либо без ключа. Сервер ресурсов должен проверить время истечения после проверки подписи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...