#### [Abblix\.Oidc\.Server](https://www.abblix.com/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers')

## PushModeCompletionHandler Class

Handles CIBA push mode token delivery where tokens are sent directly to the client's notification endpoint
immediately upon authentication completion\.
In push mode, tokens are generated, delivered via HTTP POST, and the request is removed from storage \-
except when the delivery itself fails, which is the one outcome that leaves the record behind\.

```csharp
public class PushModeCompletionHandler : Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [AuthenticationCompletionHandler](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers\.AuthenticationCompletionHandler') → PushModeCompletionHandler
### Constructors

## PushModeCompletionHandler\(ILogger\<PushModeCompletionHandler\>, IBackChannelRequestStorage, ISubjectTypeConverter, INotificationDeliveryService, ITokenRequestProcessor, IAuthorizationDetailsPolicy\) Constructor {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy)}

Handles CIBA push mode token delivery where tokens are sent directly to the client's notification endpoint
immediately upon authentication completion\.
In push mode, tokens are generated, delivered via HTTP POST, and the request is removed from storage \-
except when the delivery itself fails, which is the one outcome that leaves the record behind\.

```csharp
public PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler> logger, Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage storage, Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter subjectTypeConverter, Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService notificationService, Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor tokenRequestProcessor, Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy authorizationDetailsPolicy);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[PushModeCompletionHandler](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers\.PushModeCompletionHandler')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).logger}

Logger for tracking notification events\.

###### `storage` [IBackChannelRequestStorage](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces\.IBackChannelRequestStorage') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).storage}

Storage for authentication requests\.

###### `subjectTypeConverter` [ISubjectTypeConverter](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter 'Abblix\.Oidc\.Server\.Features\.PairwiseIdentifiers\.ISubjectTypeConverter') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).subjectTypeConverter}

Seals a session's subject the way the requesting client sees it,
            so the end user who authenticated can be compared against the one the request named\.

###### `notificationService` [INotificationDeliveryService](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.Interfaces\.INotificationDeliveryService') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).notificationService}

Service for delivering tokens to client endpoint\.

###### `tokenRequestProcessor` [ITokenRequestProcessor](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Interfaces\.ITokenRequestProcessor') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).tokenRequestProcessor}

Processor for generating tokens\.

###### `authorizationDetailsPolicy` [IAuthorizationDetailsPolicy](https://www.abblix.com/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy 'Abblix\.Oidc\.Server\.Features\.RichAuthorizationRequests\.IAuthorizationDetailsPolicy') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler.PushModeCompletionHandler(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler_,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.IBackChannelRequestStorage,Abblix.Oidc.Server.Features.PairwiseIdentifiers.ISubjectTypeConverter,Abblix.Oidc.Server.Features.BackChannelAuthentication.Interfaces.INotificationDeliveryService,Abblix.Oidc.Server.Endpoints.Token.Interfaces.ITokenRequestProcessor,Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy).authorizationDetailsPolicy}

The per\-type validators, asked before delivery whether
            the grant the host completed with is still one the deployment will issue\.
