Реализовать систему из 2 токенов, многоразового (access token) и одноразового (refresh token). Пользователь получает оба токена после успешного входа на сайт. С помощью первого, access token совершаются все операции доступа. Этот токен имеет небольшую продолжительность жизни (~1 час), и после истечения времени должен быть обновлен. Refresh token имеет условно неограниченную продолжительности жизни, и используется для обновления токенов. Для этого совершается запрос к серверу, подлинность токена подтверждается и пользователю отправляется нова пара токенов. В случае если подлинность токена не удалось подтвердить то все выданные ранее токены для сессии аннулируются.
Плюсами такого подхода являются:
Повышенная безопасность - даже если были скомпрометированы оба токена злоумышленникам не удастся получить доступ на продолжительный срок оставаясь незамеченными;
Удобство для конечного пользователя - до тех пор пока промежуток времени между использованием сайта не превысил время жизни refresh token, не нужно повторно входить в аккаунт.
Для обеспечения еще большей безопасности реализовать список сессий с указанием адресов и агентов, для возможности убить любую из них.
Реализовать систему из 2 токенов, многоразового (access token) и одноразового (refresh token). Пользователь получает оба токена после успешного входа на сайт. С помощью первого, access token совершаются все операции доступа. Этот токен имеет небольшую продолжительность жизни (~1 час), и после истечения времени должен быть обновлен. Refresh token имеет условно неограниченную продолжительности жизни, и используется для обновления токенов. Для этого совершается запрос к серверу, подлинность токена подтверждается и пользователю отправляется нова пара токенов. В случае если подлинность токена не удалось подтвердить то все выданные ранее токены для сессии аннулируются. Плюсами такого подхода являются:
Для обеспечения еще большей безопасности реализовать список сессий с указанием адресов и агентов, для возможности убить любую из них.