Table of Contents

Class JwtBuilder

Namespace
JWT.Builder
Assembly
Coherence.JWT.dll

Encode and decode JWT with Fluent API.

public sealed class JwtBuilder
Inheritance
JwtBuilder
Extension Methods

Constructors

JwtBuilder()

public JwtBuilder()

Methods

AddClaim(string, object)

Adds claim to the JWT.

public JwtBuilder AddClaim(string name, object value)

Parameters

name string

Claim name

value object

Claim value

Returns

JwtBuilder

Current builder instance

AddHeader(HeaderName, object)

Add header to the JWT.

public JwtBuilder AddHeader(HeaderName name, object value)

Parameters

name HeaderName

Well-known header name

value object

The value you want give to the header

Returns

JwtBuilder

Current builder instance

AddHeader(string, object)

Add header to the JWT.

public JwtBuilder AddHeader(string name, object value)

Parameters

name string

Header name

value object

The value you want give to the header

Returns

JwtBuilder

Current builder instance

Remarks

This adds a non-standard header value.

Create()

Creates a new instance of instance JwtBuilder

public static JwtBuilder Create()

Returns

JwtBuilder

Decode(string)

Decodes a token using the supplied dependencies.

public string Decode(string token)

Parameters

token string

The JWT

Returns

string

The JSON payload

Decode(string, Type)

public object Decode(string token, Type type)

Parameters

token string
type Type

Returns

object

DecodeHeader(string)

Given a JWT, decodes it and return the header.

public string DecodeHeader(string token)

Parameters

token string

The JWT

Returns

string

DecodeHeader<T>(string)

Given a JWT, decodes it and return the header.

public T DecodeHeader<T>(string token)

Parameters

token string

The JWT

Returns

T

Type Parameters

T

Decode<T>(string)

Decodes a token using the supplied dependencies.

public T Decode<T>(string token)

Parameters

token string

The JWT

Returns

T

Type Parameters

T

DoNotVerifySignature()

Instructs to do not verify the JWT signature.

public JwtBuilder DoNotVerifySignature()

Returns

JwtBuilder

Current builder instance

Encode()

Encodes a token using the supplied dependencies.

public string Encode()

Returns

string

The generated JWT

Exceptions

InvalidOperationException

Encode(object)

public string Encode(object payload)

Parameters

payload object

Returns

string

MustVerifySignature()

Instructs to verify the JWT signature.

public JwtBuilder MustVerifySignature()

Returns

JwtBuilder

Current builder instance

WithAlgorithm(IJwtAlgorithm)

Sets JWT algorithm.

public JwtBuilder WithAlgorithm(IJwtAlgorithm algorithm)

Parameters

algorithm IJwtAlgorithm

Returns

JwtBuilder

Current builder instance.

WithAlgorithmFactory(IAlgorithmFactory)

Sets JWT algorithm factory.

public JwtBuilder WithAlgorithmFactory(IAlgorithmFactory algFactory)

Parameters

algFactory IAlgorithmFactory

Returns

JwtBuilder

Current builder instance.

WithDateTimeProvider(IDateTimeProvider)

Sets custom datetime provider.

public JwtBuilder WithDateTimeProvider(IDateTimeProvider provider)

Parameters

provider IDateTimeProvider

Returns

JwtBuilder

Current builder instance

Remarks

If not set then default UtcDateTimeProvider will be used.

WithDecoder(IJwtDecoder)

Sets JWT decoder.

public JwtBuilder WithDecoder(IJwtDecoder decoder)

Parameters

decoder IJwtDecoder

Returns

JwtBuilder

Current builder instance

WithEncoder(IJwtEncoder)

Sets JWT encoder.

public JwtBuilder WithEncoder(IJwtEncoder encoder)

Parameters

encoder IJwtEncoder

Returns

JwtBuilder

Current builder instance

WithJsonSerializer(IJsonSerializer)

Sets JWT serializer.

public JwtBuilder WithJsonSerializer(IJsonSerializer serializer)

Parameters

serializer IJsonSerializer

Returns

JwtBuilder

Current builder instance

WithJsonSerializer(Func<IJsonSerializer>)

Sets JWT serializer.

public JwtBuilder WithJsonSerializer(Func<IJsonSerializer> factory)

Parameters

factory Func<IJsonSerializer>

Returns

JwtBuilder

Current builder instance

WithJsonSerializerFactory(IJsonSerializerFactory)

Sets JWT serializer factory.

public JwtBuilder WithJsonSerializerFactory(IJsonSerializerFactory jsonSerializerFactory)

Parameters

jsonSerializerFactory IJsonSerializerFactory

Returns

JwtBuilder

Current builder instance

WithSecret(params byte[][])

Sets secrets.

public JwtBuilder WithSecret(params byte[][] secrets)

Parameters

secrets byte[][]

Returns

JwtBuilder

Current builder instance

Remarks

Required to create a new token that uses an symmetric algorithm such as RS256Algorithm

WithSecret(params string[])

Sets secrets.

public JwtBuilder WithSecret(params string[] secrets)

Parameters

secrets string[]

Returns

JwtBuilder

Current builder instance

Remarks

Required to create a new token that uses an symmetric algorithm such as RS256Algorithm

WithUrlEncoder(IBase64UrlEncoder)

Sets custom URL encoder.

public JwtBuilder WithUrlEncoder(IBase64UrlEncoder urlEncoder)

Parameters

urlEncoder IBase64UrlEncoder

Returns

JwtBuilder

Current builder instance

Remarks

If not set then default JwtBase64UrlEncoder will be used.

WithValidationParameters(ValidationParameters)

Sets the JWT signature validation parameters.

public JwtBuilder WithValidationParameters(ValidationParameters valParams)

Parameters

valParams ValidationParameters

Parameters to be used for validation

Returns

JwtBuilder

Current builder instance

Exceptions

ArgumentNullException

WithValidationParameters(Action<ValidationParameters>)

Sets the JWT signature validation parameters.

public JwtBuilder WithValidationParameters(Action<ValidationParameters> action)

Parameters

action Action<ValidationParameters>

Delegate to produce parameters to be used for validation

Returns

JwtBuilder

Current builder instance

Exceptions

ArgumentNullException

WithValidator(IJwtValidator)

Sets JWT validator.

public JwtBuilder WithValidator(IJwtValidator validator)

Parameters

validator IJwtValidator

Returns

JwtBuilder

Current builder instance

Remarks

Required to decode with verification.

WithVerifySignature(bool)

Instructs whether to verify the JWT signature.

public JwtBuilder WithVerifySignature(bool verify)

Parameters

verify bool

Returns

JwtBuilder

Current builder instance