diff --git a/Services/YouTubeAuthService.cs b/Services/YouTubeAuthService.cs index 8f2c2d2..183a92d 100644 --- a/Services/YouTubeAuthService.cs +++ b/Services/YouTubeAuthService.cs @@ -30,15 +30,20 @@ public class YouTubeAuthService public string GetAuthorizationUrl(string redirectUri) { - var parameters = HttpUtility.ParseQueryString(string.Empty); - parameters["client_id"] = _clientId; - parameters["redirect_uri"] = redirectUri; - parameters["response_type"] = "code"; - parameters["scope"] = Scope; - parameters["access_type"] = "offline"; - parameters["prompt"] = "consent"; + var query = new[] + { + ("client_id", _clientId), + ("redirect_uri", redirectUri), + ("response_type", "code"), + ("scope", Scope), + ("access_type", "offline"), + ("prompt", "consent"), + }; - return $"{AuthorizationEndpoint}?{parameters}"; + var encoded = string.Join("&", query.Select(kv => + $"{Uri.EscapeDataString(kv.Item1)}={Uri.EscapeDataString(kv.Item2)}")); + + return $"{AuthorizationEndpoint}?{encoded}"; } public async Task ExchangeCodeForToken(string code, string redirectUri)