Я пытаюсь создать веб-приложение и мобильное приложение, поэтому я решил обрабатывать аутентификацию с помощью JWT.
Я хочу знать, где хранить токен обновления на сервере и на клиенте, а также когда я узнаю, когда мне нужно вызвать конечную точку токена обновления со стороны моего клиента?
Я использую локальную стратегию (электронная почта и пароль).
Спасибо.
Как правило, у вас будет база данных, с которой работает ваше серверное приложение, поэтому вы захотите сохранить JWT с другой информацией пользователя в этой базе данных. Любая система баз данных будет работать до тех пор, пока вы можете получить информацию о пользователе из базы данных, используя предоставленный JWT при вызове сервера. Чтобы быстро приступить к работе, я бы порекомендовал попробовать базу данных, например MongoDB или что-то подобное.
Если вы уже используете локальное хранилище для хранения электронной почты и пароля пользователя, вы можете использовать ту же стратегию для хранения JWT, который клиент получает с сервера. Хотя я бы не рекомендовал хранить адрес электронной почты и пароль в локальном хранилище браузера, так как это огромная уязвимость в системе безопасности. Лучше всего хранить адрес электронной почты и пароль в базе данных вместе с JWT, и вы можете при необходимости просмотреть эту информацию на сервере с учетом указанного JWT. Но эта информация никогда не должна храниться локально на клиенте.
Поскольку каждый JWT имеет соответствующую дату истечения срока действия, вы можете использовать немного кода на стороне клиента, чтобы проверить дату и время истечения срока действия и выяснить, когда вам следует попытаться обновить свой JWT для нового с расширенным сроком действия. Ознакомьтесь с этим документация для получения подробной информации о различных пакетах, которые можно использовать для взаимодействия с JWT. Поле даты истечения срока действия в JWT называется exp
, поэтому найдите его в предоставленной ссылке на документацию.