Как включить функцию удаленного выхода, такую как Google / Facebook?

#javascript #node.js #jwt

#javascript #node.js #jwt

Вопрос:

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

Мой вопрос в том, как мы реализуем функцию удаленного выхода для удаленного выхода из системы со всех устройств и т.д. Я имею в виду, что Google предоставляет эту функциональность. Реализуем ли мы это, используя те же токены доступа / обновления и просто аннулируя токены? Я также видел, что некоторые приложения выходят из системы при смене пароля, например Skype. Как эти приложения справляются с такой работой, потому что я не вижу, как мы можем выполнить это с помощью токенов без поддержания какого-либо состояния на сервере, которое, на мой взгляд, противоречило бы назначению токенов.

Комментарии:

1. Токены обновления сами по себе отслеживают состояние, обычно вы сохраняете их во что-то вроде redis. Затем, когда срок действия токена с более коротким сроком действия истек, вы сравниваете его с токеном обновления с длительным сроком действия, чтобы выдать новый. Если вы хотите принудительно завершить выход пользователя, вам следует удалить токен обновления из состояния.

2. Да, я знаю об этом, однако в нем все еще отображается окно, в котором неавторизованный пользователь имеет доступ к ресурсам, даже если на 5 минут. Я видел в таких приложениях, как Skype, Uber, что, как только я меняю свой пароль, он мгновенно выводит меня из системы с других устройств. Как они это делают, если только они не аннулируют токен доступа, который, я не знаю, возможен без изменения подписи и, следовательно, выхода из системы всех пользователей.