Fix indefinite hang on invalid PKCE client_id

This commit is contained in:
BigAtomikku 2025-05-26 14:10:30 -04:00
parent 5a8b55f5e8
commit 7e40a8e34b
No known key found for this signature in database
GPG Key ID: AD5DA1F1A0C75CE4

View File

@ -875,6 +875,27 @@ class SpotifyPKCE(SpotifyAuthBase):
if self.code_verifier is None or self.code_challenge is None:
self.get_pkce_handshake_parameters()
preflight_payload = {
"client_id": self.client_id,
"grant_type": "authorization_code",
"code": "invalid_code",
"redirect_uri": self.redirect_uri,
"code_verifier": self.code_verifier,
}
preflight_resp = self._session.post(
self.OAUTH_TOKEN_URL,
data=preflight_payload,
headers={"Content-Type": "application/x-www-form-urlencoded"},
timeout=self.requests_timeout,
proxies=self.proxies
)
if preflight_resp.status_code == 400:
body = preflight_resp.json()
if body.get("error") == "invalid_client":
raise SpotifyOauthError("Invalid client_id")
payload = {
"client_id": self.client_id,
"grant_type": "authorization_code",