Нет проблем при взаимодействии с базой данных, но используйте для этого существующие службы.
В IdentityService вы можете найти store в пространстве имен IdentityServer4.Stores
.
using IdentityServer4.Stores;
Вставьте хранилище в свой контроллер:
private readonly IReferenceTokenStore _referenceTokenStore;
public class MyController : Controller
{
public MyController(IReferenceTokenStore referenceTokenStore)
{
_referenceTokenStore = referenceTokenStore;
}
}
И вызовите его, чтобы удалить эталонные токены для этой комбинации пользователь / клиент:
await _referenceTokenStore.RemoveReferenceTokensAsync(subjectId, clientId);
Это будет эффективно удалить записи из базы данных. Вы не должны создавать свою собственную модель базы данных и напрямую удалять токены.
Поскольку IdentityServer является открытым исходным кодом, вы можете взглянуть на код , который используется для отзыва токенов.