public async Task <TToken> RequestAccessTokenAsync(string code, OAuth2AccessTokenRequestOptions options) { options = options ?? new OAuth2AccessTokenRequestOptions(); var request = this.CreateRequestAccessTokenRestRequest(code, options); return(await this.ExecuteRequestAsync <TToken>(request)); }
protected virtual RestRequest CreateRequestAccessTokenRestRequest(string code, OAuth2AccessTokenRequestOptions options) { var request = new RestRequest(this.TokenEndpoint.AbsoluteUri, Method.POST); request .AddQueryParameter("client_id", this.ClientId) .AddQueryParameter("client_secret", this.ClientSecret) .AddQueryParameter("grant_type", options.OverrideGrantType ?? "authorization_code") .AddQueryParameter("code", code) .AddQueryParameter("redirect_uri", (options.OverrideRedirectUri ?? this.RedirectUri).AbsoluteUri) .AddQueryParameters(options.CustomParameters); return(request); }