Автор спросил
вопрос в том, должно ли приложение периодически обновлять / менять токен, и если да, то как? Должно ли быть мобильное приложение, которое требует обновления токена, или веб-приложение должно делать это автономно?
Но все ответы пишут о том, как автоматически менять токен.
Я считаю, что менять токен периодически на токен бессмысленно. Остальные фреймворки создают токен из 40 символов. Если злоумышленник проверяет 1000 токенов каждую секунду, ему требуются 16**40/1000/3600/24/365=4.6*10^7
годы, чтобы получить токен. Не стоит переживать, что злоумышленник будет тестировать ваш токен один за другим. Даже если вы поменяли свой жетон, вероятность угадать ваш жетон остается прежней.
Если вас беспокоит, что, возможно, злоумышленники могут получить ваш токен, поэтому вы периодически меняете его, чем после того, как злоумышленник получит токен, он также может изменить ваш токен, чем реальный пользователь будет выгнан.
Что вам действительно нужно сделать, так это не допустить, чтобы злоумышленник получил токен вашего пользователя, используя https .
Кстати, я просто говорю, что изменение токена на токен бессмысленно, изменение токена по имени пользователя и паролю иногда имеет смысл. Возможно, токен используется в какой-то http-среде (вы всегда должны избегать такой ситуации) или какой-либо третьей стороной (в этом случае вы должны создать другой тип токена, использовать oauth2), и когда пользователь делает что-то опасное, например, изменение привязки почтового ящика или удаления учетной записи, вы должны убедиться, что больше не будете использовать исходный токен, потому что он мог быть обнаружен злоумышленником с помощью сниффера или инструментов tcpdump.