Example #1
0
        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));
        }
Example #2
0
        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);
        }