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

## IIdTokenHintParser Interface

Turns an `id_token_hint` parameter into the ID token it claims to be, or into the reason it is not
one\.

```csharp
public interface IIdTokenHintParser
```

Derived  
↳ [IdTokenHintParser](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IdTokenHintParser 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IdTokenHintParser')

### Remarks
Two endpoints take a hint \- authorization \(OpenID Connect Core 1\.0 Section 3\.1\.2\.1\) and end session
\(RP\-Initiated Logout 1\.0 Section 2\) \- and what makes a hint believable is the same for both, while what
each does with the result is not\. Shared here rather than written twice, because the two copies had
already begun to differ: one required the expiration time through the validator and the other tested for
it by hand\.
### Methods

## IIdTokenHintParser\.ParseAsync\(string\) Method {#Abblix.Oidc.Server.Features.Tokens.Validation.IIdTokenHintParser.ParseAsync(string)}

Validates a hint and returns the ID token, or a description of why it is not acceptable\.

```csharp
System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Jwt.JsonWebToken,string>> ParseAsync(string idTokenHint);
```
#### Parameters

###### `idTokenHint` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Oidc.Server.Features.Tokens.Validation.IIdTokenHintParser.ParseAsync(string).idTokenHint}

The raw parameter value\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_ 'Abblix\.Utils\.Result\`2')[JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken')[,](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_ 'Abblix\.Utils\.Result\`2')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://www.abblix.com/en/docs/api/abblix-utils/Abblix.Utils.Result_TSuccess_TFailure_ 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The validated ID token, or a human\-readable reason the caller wraps in its own error shape \- the two
endpoints report failures as different types\.
