Identity Server 4 Обновить хранилище токенов

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

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

mackie 18.09.2018 09:22

наши клиенты иногда используют одно и то же имя пользователя / пароль для аутентификации, и мы не можем отслеживать их транзакции с помощью их токенов. Мы хотим указать токены обновления на основе IP. Мы отправляем IP-адреса в заголовке HTTP-запроса и сохраняем их на сервере sql на стороне ответа, но мы не можем уловить информацию о токене обновления на постоянной стороне сервера идентификации.

Ugur Ozker 18.09.2018 09:38

Проверьте IPersistedGrantStore в IdentityServer4 и посмотрите, сможете ли вы работать в его рамках. В противном случае вам может потребоваться создать настраиваемый грант с собственным хранилищем резервных копий.

mackie 18.09.2018 10:27

Возможно, вам следует объяснить своим клиентам, что единый вход не означает, что несколько пользователей используют одну и ту же учетную запись. Учетная запись пользователя является личной и не может быть передана другим пользователям. Вы должны добавить это в условия, которые следует принять, прежде чем использовать учетную запись. Вместо добавления измерения в IdentityServer запретите пользователям предоставлять общий доступ к учетным записям. Гораздо проще добавить дополнительную учетную запись и использовать IdentityServer по умолчанию.

Ruard van Elburg 18.09.2018 11:00

Я пока пользуюсь IPersistedGrantStore. Может быть, нестандартная структура PersistedGrant решит мою проблему, скоро попробую!

Ugur Ozker 18.09.2018 13:03

Наконец, я нашел друзей по решению. Я использовал функции IPersistedGrantStore и OperationalStore одновременно. IPersistedGrantStore обеспечивает хранение и управление всеми сеансами токенов, а OperationalStore поддерживает их, он предоставляет возможность хранения и управления этими записями для нескольких баз данных. Я выбираю Ms-sql, и мой сервер работает очень хорошо. спасибо за ценные комментарии ..

Ugur Ozker 19.09.2018 07:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
324
0

Другие вопросы по теме