#### [Abblix\.Jwt](https://www.abblix.com/en/docs/api/abblix-jwt 'index')
### [Abblix\.Jwt](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt 'Abblix\.Jwt')

## IJsonWebTokenCreator Interface

Defines the contract for a service that creates JSON Web Tokens \(JWTs\)\.

```csharp
public interface IJsonWebTokenCreator
```
### Properties

## IJsonWebTokenCreator\.SignedResponseAlgorithmsSupported Property {#Abblix.Jwt.IJsonWebTokenCreator.SignedResponseAlgorithmsSupported}

Lists the all supported signing algorithms for JWT creation\.

```csharp
System.Collections.Generic.IEnumerable<string> SignedResponseAlgorithmsSupported { get; }
```

#### Property Value
[System\.Collections\.Generic\.IEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')
### Methods

## IJsonWebTokenCreator\.IssueAsync\(JsonWebToken, JsonWebKey, JsonWebKey, string, string\) Method {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string)}

Issues a new JWT based on the specified JsonWebToken object, signing key, and optional encrypting key\.

```csharp
System.Threading.Tasks.Task<string> IssueAsync(Abblix.Jwt.JsonWebToken token, Abblix.Jwt.JsonWebKey? signingKey, Abblix.Jwt.JsonWebKey? encryptionKey=null, string keyEncryptionAlgorithm="RSA-OAEP-256", string contentEncryptionAlgorithm="A256CBC-HS512");
```
#### Parameters

###### `token` [JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken') {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).token}

The JsonWebToken object containing the payload of the JWT\.

###### `signingKey` [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).signingKey}

The JsonWebKey used to sign the JWT\.

###### `encryptionKey` [JsonWebKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebKey 'Abblix\.Jwt\.JsonWebKey') {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).encryptionKey}

Optional JsonWebKey used to encrypt the JWT\. If null, the JWT is not encrypted\.

###### `keyEncryptionAlgorithm` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).keyEncryptionAlgorithm}

JWE key management algorithm \("alg"\) that protects the Content Encryption Key with the
recipient's key \(RFC 7518 Section 4\)\. Defaults to `RSA-OAEP-256`\.
Supported values are listed on [KeyManagement](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.EncryptionAlgorithms.KeyManagement 'Abblix\.Jwt\.EncryptionAlgorithms\.KeyManagement');
only used when [encryptionKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.IJsonWebTokenCreator#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).encryptionKey 'Abblix\.Jwt\.IJsonWebTokenCreator\.IssueAsync\(Abblix\.Jwt\.JsonWebToken, Abblix\.Jwt\.JsonWebKey, Abblix\.Jwt\.JsonWebKey, string, string\)\.encryptionKey') is provided\.

###### `contentEncryptionAlgorithm` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).contentEncryptionAlgorithm}

JWE content encryption algorithm \("enc"\) that encrypts the payload with the CEK
\(RFC 7518 Section 5\)\. Defaults to `A256CBC-HS512`\.
Supported values are listed on [ContentEncryption](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.EncryptionAlgorithms.ContentEncryption 'Abblix\.Jwt\.EncryptionAlgorithms\.ContentEncryption');
only used when [encryptionKey](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.IJsonWebTokenCreator#Abblix.Jwt.IJsonWebTokenCreator.IssueAsync(Abblix.Jwt.JsonWebToken,Abblix.Jwt.JsonWebKey,Abblix.Jwt.JsonWebKey,string,string).encryptionKey 'Abblix\.Jwt\.IJsonWebTokenCreator\.IssueAsync\(Abblix\.Jwt\.JsonWebToken, Abblix\.Jwt\.JsonWebKey, Abblix\.Jwt\.JsonWebKey, string, string\)\.encryptionKey') is provided\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A Task representing the asynchronous operation, which upon completion yields the JWT as a string\.
