Я установил Identity Server, используя EF.Как настроить или настроить в коде сервер для хранения токена в базе данных.Когда процесс очистки выполняется, он последовательно регистрирует 0 токенов, доступных для очистки.
Любая помощь будет оценена.
services.AddTransient<IResourceOwnerPasswordValidator, CustomSessionValidator>()
.AddTransient<IAuthRepository, CustomAuthRepository>();
services.AddIdentityServer()
.AddSigningCredential(certificates[0])
.AddConfigurationStore(options =>
{
options.ConfigureDbContext = builder =>
builder.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
})
// this adds the operational data from DB (codes, tokens, consents)
.AddOperationalStore(options =>
{
options.ConfigureDbContext = builder =>
builder.UseSqlServer(connectionString,
sql => sql.MigrationsAssembly(migrationsAssembly));
// this enables automatic token cleanup. this is optional.
options.EnableTokenCleanup = true;
options.TokenCleanupInterval = 30;
});
services.AddDbContext<CustomApplicationDbContext>(options => options.UseSqlServer(connectionString));
Конфиг клиента.извлечение из БД и отображение в коде для полноты.
new Client
{
ClientId = "",
AllowedGrantTypes =
{
GrantType.Hybrid,
GrantType.ResourceOwnerPassword,
},
ClientSecrets =
{
new Secret("".Sha256())
},
AllowedScopes = { "scope1",
"offline_access" },
AllowOfflineAccess = true,
RefreshTokenExpiration = TokenExpiration.Absolute,
AbsoluteRefreshTokenLifetime = 3600,
AccessTokenLifetime = 3600
},
Обновление: благодаря советам.В документации не указано, что хранится только токен обновления.Я ожидал, что токен доступа будет сохранен.После того, как токен обновления настроен на правильное время истечения, процесс очистки начал работать.
Спасибо, Грег