This is a demonstration of using OAuth to authenticate with Napster.
This login flow uses PKCE (Proof Key for Code Exchange),
so the website doesn't have to expose the client secret in the source code.
1. First, the website generates a random alphanumeric string of
length 64, the Code Verifier.

            
        
2. You will then be redirected to the login page,
where you will be asked to log in and confirm that you are okay with
the permissions that the website is requesting. The URL that takes
you to the login page will contain a HASH of the Code Verifier!
This is the Code Challenge.

Only this website knows the actual Code Verifier. This will be useful later on.
3. If you give the needed permission, you will be redirected
back here again, with an auth code.
The website can exchange this auth code for an access token!
This access token will allow the website to access your data through
an API. We provide the unhashed Code Verifier to the API
in this step, so that the API can verify that we are the same website
that got you to login in with your account.