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

## AuthenticationCompletionHandler Class

Abstract base class for CIBA authentication completion handlers\.
Provides common functionality for validation, status management, and delivery orchestration\.
Derived classes implement specific token delivery modes \(poll, ping, push\) per CIBA specification\.

```csharp
public abstract class AuthenticationCompletionHandler
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → AuthenticationCompletionHandler

Derived  
↳ [PingModeCompletionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PingModeCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers\.PingModeCompletionHandler')  
↳ [PollModeCompletionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PollModeCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers\.PollModeCompletionHandler')  
↳ [PushModeCompletionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.PushModeCompletionHandler 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.AuthenticationNotifiers\.PushModeCompletionHandler')
### Methods

## AuthenticationCompletionHandler\.CompleteAuthenticationAsync\(string, BackChannelAuthenticationRequest, ClientInfo, TimeSpan\) Method {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler.CompleteAuthenticationAsync(string,Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan)}

Completes the authentication process by marking the request as authenticated and delegating
to the mode\-specific delivery implementation\.

```csharp
public System.Threading.Tasks.Task CompleteAuthenticationAsync(string authenticationRequestId, Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest request, Abblix.Oidc.Server.Features.ClientInformation.ClientInfo clientInfo, System.TimeSpan expiresIn);
```
#### Parameters

###### `authenticationRequestId` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler.CompleteAuthenticationAsync(string,Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan).authenticationRequestId}

The auth\_req\_id identifying the authentication request\.

###### `request` [BackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Features\.BackChannelAuthentication\.BackChannelAuthenticationRequest') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler.CompleteAuthenticationAsync(string,Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan).request}

The authentication request to mark as authenticated\.

###### `clientInfo` [ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler.CompleteAuthenticationAsync(string,Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan).clientInfo}

Client information including delivery mode configuration\.

###### `expiresIn` [System\.TimeSpan](https://learn.microsoft.com/en-us/dotnet/api/system.timespan 'System\.TimeSpan') {#Abblix.Oidc.Server.Features.BackChannelAuthentication.AuthenticationNotifiers.AuthenticationCompletionHandler.CompleteAuthenticationAsync(string,Abblix.Oidc.Server.Features.BackChannelAuthentication.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Features.ClientInformation.ClientInfo,System.TimeSpan).expiresIn}

How long the authenticated request remains valid\.

#### Returns
[System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task')  
A task representing the asynchronous authentication completion operation\.

### Remarks
This method:
1. Sets the request status to Authenticated
2. Delegates to HandleDeliveryAsync for mode-specific token delivery (poll/ping/push)

Called by AuthenticationCompletionRouter after determining the appropriate delivery mode handler\.
