/// <summary> /// Intercepts the authorization uri response and gets the authorization code. /// </summary> /// <param name="authorizationUri">Authorization uri.</param> /// <param name="redirectUri">Redirect uri.</param> /// <param name="cancellationToken">Cancellation token.</param> /// <returns>Authorization code.</returns> private async Task <Uri> InterceptAuthorizationUriAsync( Uri authorizationUri, Uri redirectUri, CancellationToken cancellationToken) { Func <Uri, Task> defaultBrowserAction = (Uri u) => { PlatformProxyShared.StartDefaultOsBrowser(u.AbsoluteUri); return(Task.CompletedTask); }; Func <Uri, Task> openBrowserAction = defaultBrowserAction; cancellationToken.ThrowIfCancellationRequested(); await openBrowserAction(authorizationUri).ConfigureAwait(false); cancellationToken.ThrowIfCancellationRequested(); return(await this.uriInterceptor.ListenToSingleRequestAndRespondAsync( redirectUri.Port, this.GetResponseMessage, cancellationToken) .ConfigureAwait(false)); }
public override Task StartDefaultOsBrowserAsync(string url) { PlatformProxyShared.StartDefaultOsBrowser(url); return(Task.FromResult(0)); }