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

## ITokenContextValidator Interface

Defines the contract for a token context validator, responsible for validating different aspects of a token request
within a given context\. Implementations of this interface ensure that the token request adheres to
the expected security and business rules\.

```csharp
public interface ITokenContextValidator
```

Derived  
↳ [AuthorizationGrantValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.AuthorizationGrantValidator 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.AuthorizationGrantValidator')  
↳ [ClientValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.ClientValidator 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.ClientValidator')  
↳ [DPoPTokenEndpointValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.DPoPTokenEndpointValidator 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.DPoPTokenEndpointValidator')  
↳ [SyncTokenContextValidatorBase](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.SyncTokenContextValidatorBase 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.SyncTokenContextValidatorBase')  
↳ [TokenContextValidatorComposite](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.TokenContextValidatorComposite 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.TokenContextValidatorComposite')
### Methods

## ITokenContextValidator\.ValidateAsync\(TokenValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext)}

Asynchronously validates the token request within the provided context, checking for compliance with
the necessary validation rules such as client authentication, scope validation, grant validation, etc\.

```csharp
System.Threading.Tasks.Task<Abblix.Oidc.Server.Common.OidcError?> ValidateAsync(Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext context);
```
#### Parameters

###### `context` [TokenValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.TokenValidationContext') {#Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext).context}

The context containing the token request and related information that needs to be validated\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A [OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError') containing error details if the validation fails;
otherwise, returns null indicating that the validation was successful\.
