Beispiel #1
0
    /// <summary>
    /// Sends a token request.
    /// </summary>
    /// <param name="client">The client.</param>
    /// <param name="request">The request.</param>
    /// <param name="cancellationToken">The cancellation token.</param>
    /// <returns></returns>
    public static async Task <TokenResponse> RequestTokenAsync(this HttpMessageInvoker client, TokenRequest request, CancellationToken cancellationToken = default)
    {
        var clone = request.Clone();

        if (!clone.Parameters.ContainsKey(OidcConstants.TokenRequest.GrantType))
        {
            clone.Parameters.AddRequired(OidcConstants.TokenRequest.GrantType, request.GrantType);
        }

        return(await client.RequestTokenAsync(clone, cancellationToken).ConfigureAwait());
    }