#### [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')

## IdTokenHintParser Class

Decides whether an `id_token_hint` is an ID token this server issued\.

```csharp
public class IdTokenHintParser : Abblix.Oidc.Server.Features.Tokens.Validation.IIdTokenHintParser
```

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

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

### Remarks
Three questions, in the order that makes each one cheap\. Is it ours \- signature and issuer\. Is it an ID
token rather than another kind of JWT we sign with the same key\. And does it carry the claim an ID token
is required to carry, which is what parts it from the one other kind that has no type either\.

Who the audience must name is left to the caller, because the two callers disagree. The authorization
endpoint requires the requesting client; the end-session endpoint reads the client out of the audience
when the request omitted it. What both agree on is that this server need not be in it - OpenID Connect
Core 1.0 Section 3.1.2.1: "The Authorization Server need not be listed as an audience of the ID Token
when it is used as an `id_token_hint` value."
### Constructors

## IdTokenHintParser\(IAuthServiceJwtValidator\) Constructor {#Abblix.Oidc.Server.Features.Tokens.Validation.IdTokenHintParser.IdTokenHintParser(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator)}

Decides whether an `id_token_hint` is an ID token this server issued\.

```csharp
public IdTokenHintParser(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator jwtValidator);
```
#### Parameters

###### `jwtValidator` [IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator') {#Abblix.Oidc.Server.Features.Tokens.Validation.IdTokenHintParser.IdTokenHintParser(Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).jwtValidator}

Validates the hint's signature and issuer\.

### Remarks
Three questions, in the order that makes each one cheap\. Is it ours \- signature and issuer\. Is it an ID
token rather than another kind of JWT we sign with the same key\. And does it carry the claim an ID token
is required to carry, which is what parts it from the one other kind that has no type either\.

Who the audience must name is left to the caller, because the two callers disagree. The authorization
endpoint requires the requesting client; the end-session endpoint reads the client out of the audience
when the request omitted it. What both agree on is that this server need not be in it - OpenID Connect
Core 1.0 Section 3.1.2.1: "The Authorization Server need not be listed as an audience of the ID Token
when it is used as an `id_token_hint` value."
### Methods

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

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

```csharp
public 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.IdTokenHintParser.ParseAsync(string).idTokenHint}

The raw parameter value\.

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

#### 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\.
