/// <summary> /// Initializes a new instance of the <see cref="JsonWebToken"/> class. /// </summary> /// <param name="header">The first part of the JSON Web Token; the header information.</param> /// <param name="payload">The second part of the JSON Web Token; the payload information.</param> /// <param name="secret">The optional secret that is used in the last part of the JSON Web Token; the signature.</param> public JsonWebToken(JsonWebTokenHeader header, JsonWebTokenPayload payload, byte[] secret) { Validator.ThrowIfNull(header, nameof(header)); Validator.ThrowIfNull(payload, nameof(payload)); if (header.Algorithm != JsonWebTokenHashAlgorithm.None && secret == null) { throw new ArgumentException("You must specify a secret when JsonWebTokenHashAlgorithm is specified to other than None.", nameof(secret)); } Base64UrlEncodedHeader = StringConverter.ToUrlEncodedBase64(Encoding.UTF8.GetBytes(header.ToString())); Base64UrlEncodedPayload = StringConverter.ToUrlEncodedBase64(Encoding.UTF8.GetBytes(payload.ToString())); Algorithm = header.Algorithm; Secret = secret; }
/// <summary> /// Initializes a new instance of the <see cref="JsonWebToken"/> class that is . /// </summary> /// <param name="header">The first part of the JSON Web Token; the header information.</param> /// <param name="payload">The second part of the JSON Web Token; the payload information.</param> public JsonWebToken(JsonWebTokenHeader header, JsonWebTokenPayload payload) : this(header, payload, null) { }