Это слишком общий вопрос.
В целом, хранить сами токены не стоит ни в каком случае, для сравнения всегда достаточно хранить хеш.
В случае если вы используете JWS, хранение токенов может потребоваться чтобы иметь возможность отозвать токены при завершении сессии пользователем. Обычно хранится не сам токен, и даже не хеш, а идентификатор сеанса. При этом можно хранить либо список активных сессий либо наоборот список отозванных (в течении времени жизни рефреш токена). Фактически это убивает все преимущества JWS, но другого способа завершить сеанс нет, это глобальная проблема JWS. Поэтому использовать JWS для рефреш токенов в целом не очень разумно.
Про запрет повторного использования вам ответили, но в целом такой запрет является
опциональным, в большинстве реализаций OAuth2 новый рефреш не возвращается и старый токен остается действительным.
В случае если вы не используете JWS, а генерируете случайные токены, вам в любом случае надо их хранить (точнее их хеши), т.к. вы будете сравнивать переданный токен с хранимым.