protected virtual async Task <AuthenticationTicket> GetUserInformationAsync(AuthenticationProperties properties, TokenResponse tokens)
        {
            var context = new OAuthGetUserInformationContext(Context, Options, Backchannel, tokens)
            {
                Properties = properties,
            };
            await Options.Notifications.GetUserInformationAsync(context);

            return(new AuthenticationTicket(context.Principal, context.Properties, Options.AuthenticationScheme));
        }
 /// <summary>
 /// Invoked after the provider successfully authenticates a user.
 /// </summary>
 /// <param name="context">Contains information about the login session as well as the user <see cref="System.Security.Claims.ClaimsIdentity"/>.</param>
 /// <returns>A <see cref="Task"/> representing the completed operation.</returns>
 public virtual Task GetUserInformationAsync(OAuthGetUserInformationContext context)
 {
     return(OnGetUserInformationAsync(context));
 }