public async Task <TokenModel> GetTokenAsync(string code, CancellationToken cancellationToken) { var accessTokenUrl = TokenEndpoint + "?grant_type=authorization_code" + "&client_id=" + Uri.EscapeDataString(_options.ClientId) + "&client_secret=" + Uri.EscapeDataString(_options.ClientSecret) + "&redirect_uri=" + Uri.EscapeDataString(_options.RedirectUrl()) + "&code=" + Uri.EscapeDataString(code); var response = await GetStringResponseAsync(accessTokenUrl, cancellationToken); return(TokenModel.From(response)); }