in src/SpotifyApi.ts [212:236]
public static async performUserAuthorization(clientId: string, redirectUri: string, scopes: string[], onAuthorizationOrUrl: ((token: AccessToken) => Promise<void>) | string, config?: SdkOptions): Promise<AuthenticationResponse> {
const strategy = new AuthorizationCodeWithPKCEStrategy(clientId, redirectUri, scopes);
const client = new SpotifyApi(strategy, config);
const accessToken = await client.authenticationStrategy.getOrCreateAccessToken();
if (!isEmptyAccessToken(accessToken)) {
if (typeof onAuthorizationOrUrl === "string") {
console.log("Posting access token to postback URL.");
await fetch(onAuthorizationOrUrl, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(accessToken)
});
} else {
await onAuthorizationOrUrl(accessToken);
}
}
return {
authenticated: accessToken.expires! > Date.now() && !isEmptyAccessToken(accessToken),
accessToken
};
}