Мне нужно хранить случайно сгенерированный токен обновления на стороне сервера. Например, если у пользователя есть активный токен обновления, сервер не разрешает этому пользователю сгенерировать другой токен обновления. Серверу необходимо вернуть существующий токен обновления пользователю. Я думаю, что если я сохраню токены обновления при их первом создании на стороне сервера, то я могу проверить все запросы токенов на сервере. Есть ли способ?
наши клиенты иногда используют одно и то же имя пользователя / пароль для аутентификации, и мы не можем отслеживать их транзакции с помощью их токенов. Мы хотим указать токены обновления на основе IP. Мы отправляем IP-адреса в заголовке HTTP-запроса и сохраняем их на сервере sql на стороне ответа, но мы не можем уловить информацию о токене обновления на постоянной стороне сервера идентификации.
Проверьте IPersistedGrantStore в IdentityServer4 и посмотрите, сможете ли вы работать в его рамках. В противном случае вам может потребоваться создать настраиваемый грант с собственным хранилищем резервных копий.
Возможно, вам следует объяснить своим клиентам, что единый вход не означает, что несколько пользователей используют одну и ту же учетную запись. Учетная запись пользователя является личной и не может быть передана другим пользователям. Вы должны добавить это в условия, которые следует принять, прежде чем использовать учетную запись. Вместо добавления измерения в IdentityServer запретите пользователям предоставлять общий доступ к учетным записям. Гораздо проще добавить дополнительную учетную запись и использовать IdentityServer по умолчанию.
Я пока пользуюсь IPersistedGrantStore. Может быть, нестандартная структура PersistedGrant решит мою проблему, скоро попробую!
Наконец, я нашел друзей по решению. Я использовал функции IPersistedGrantStore и OperationalStore одновременно. IPersistedGrantStore обеспечивает хранение и управление всеми сеансами токенов, а OperationalStore поддерживает их, он предоставляет возможность хранения и управления этими записями для нескольких баз данных. Я выбираю Ms-sql, и мой сервер работает очень хорошо. спасибо за ценные комментарии ..





Маркеры обновления уже сохранены, поэтому вы можете отказаться от некоторой настраиваемой логики, чтобы всегда возвращать одну и ту же, но это было бы несколько нестандартно. Какую проблему вы пытаетесь решить этим?