diff --git a/src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs b/src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs index 1d33f790b..16b8b3415 100644 --- a/src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs +++ b/src/OpenIddict.EntityFramework/Stores/OpenIddictEntityFrameworkTokenStore.cs @@ -752,6 +752,7 @@ public virtual async ValueTask RevokeByApplicationIdAsync(string identifie .Include(token => token.Application) .Include(token => token.Authorization) where token.Application!.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked; @@ -802,6 +803,7 @@ public virtual async ValueTask RevokeByAuthorizationIdAsync(string identif .Include(token => token.Application) .Include(token => token.Authorization) where token.Authorization!.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked; @@ -851,6 +853,7 @@ public virtual async ValueTask RevokeBySubjectAsync(string subject, Cancel .Include(token => token.Application) .Include(token => token.Authorization) where token.Subject == subject + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked; diff --git a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs index 75072617d..a14175bb5 100644 --- a/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs +++ b/src/OpenIddict.EntityFrameworkCore/Stores/OpenIddictEntityFrameworkCoreTokenStore.cs @@ -859,6 +859,7 @@ public virtual async ValueTask RevokeByApplicationIdAsync(string identifie return await ( from token in context.Set() where token.Application!.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ExecuteUpdateAsync(entity => entity.SetProperty( token => token.Status, Statuses.Revoked), cancellationToken); @@ -882,6 +883,7 @@ from token in context.Set() .AsTracking() join application in context.Set().AsTracking() on token.Application!.Id equals application.Id where application.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked; @@ -930,6 +932,7 @@ public virtual async ValueTask RevokeByAuthorizationIdAsync(string identif return await ( from token in context.Set() where token.Authorization!.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ExecuteUpdateAsync(entity => entity.SetProperty( token => token.Status, Statuses.Revoked), cancellationToken); @@ -953,6 +956,7 @@ from token in context.Set() .AsTracking() join authorization in context.Set().AsTracking() on token.Authorization!.Id equals authorization.Id where authorization.Id!.Equals(key) + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked; @@ -1000,6 +1004,7 @@ public virtual async ValueTask RevokeBySubjectAsync(string subject, Cancel return await ( from token in context.Set() where token.Subject == subject + where token.Status != Statuses.Revoked select token).ExecuteUpdateAsync(entity => entity.SetProperty( token => token.Status, Statuses.Revoked), cancellationToken); @@ -1016,6 +1021,7 @@ from token in context.Set() .Include(token => token.Authorization) .AsTracking() where token.Subject == subject + where token.Status != Statuses.Revoked select token).ToListAsync(cancellationToken)) { token.Status = Statuses.Revoked;