Authorization Code
This flow is suitable for long-running applications in which the user grants permission only once. It provides an access token that can be refreshed. Since the token exchange involves sending your secret key, perform this on a secure location, like a backend service, and not from a client such as a browser or from a mobile app.
Existing Web-Server
If you are already in control of a Web-Server (like ASP.NET
), you can start the flow by generating a login uri:
When the user is redirected to the generated uri, they will have to login with their Spotify account and confirm that your application wants to access their user data. Once confirmed, they will be redirected to http://localhost:5000
and a code
parameter is attached to the query. This code
has to be exchanged for an access_token
and refresh_token
:
If the token expires at some point (check via response.IsExpired
), you can refresh it:
You can also let the AuthorizationCodeAuthenticator
take care of the refresh part:
For a real example, have a look at Example.ASP. This also uses the great package AspNet.Security.OAuth.Spotify
which takes care of the OAuth flow inside of ASP.NET
.
Using Spotify.Web.Auth
For cross-platform CLI and desktop apps (non UWP
apps), Spotify.Web.Auth
can be used to supply a small embedded Web Server for the code retrieval.
warning
Your client secret will be exposed when embedded in a desktop/CLI app. This can be abused and is not prefered. If possible, let the user create an application in the Spotify dashboard or let a server handle the Spotify communication.
For real examples, have a look at Example.CLI.PersistentConfig and Example.CLI.CustomHTML