in src/auth/AuthorizationCodeWithPKCEStrategy.ts [109:131]
protected async exchangeCodeForToken(code: string, verifier: string): Promise<AccessToken> {
const params = new URLSearchParams();
params.append("client_id", this.clientId);
params.append("grant_type", "authorization_code");
params.append("code", code);
params.append("redirect_uri", this.redirectUri);
params.append("code_verifier", verifier!);
const result = await fetch("https://accounts.spotify.com/api/token", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: params
});
const text = await result.text();
if (!result.ok) {
throw new Error(`Failed to exchange code for token: ${result.statusText}, ${text}`);
}
const json: AccessToken = JSON.parse(text);
return json;
}