/android-auth

Spotify authentication and authorization for Android. Part of the Spotify Android SDK.

Primary LanguageJavaApache License 2.0Apache-2.0

Spotify Auth Library

Maven Central

This repository is now a part of spotify/android-sdk. Please post new issues there!

This library is responsible for authenticating the user and fetching the authorization code/access token that can subsequently be used to play music or in requests to the Spotify Web API.

Breaking changes in Spotify Auth library version 2.0.0

In this version we replaced use of WebView with Custom Tabs since Google and Facebook Login no longer support WebViews for authenticating users.

As part of this change the library API does not contain AuthorizationClient#clearCookies method anymore. Custom Tabs use the cookies from the browser.

Integrating the library into your project

To add this library to your project add following dependency to your app build.gradle file:

implementation "com.spotify.android:auth:<version>"

Since April 2021 we're publishing the library on MavenCentral instead of JCenter. Therefore to be able to get the library dependency, you should add MavenCentral into repositories block:

repositories {
    mavenCentral()
    ...
}

Since Spotify Auth library version 2.0.0 you also need to provide the scheme and host of the redirect URI that your app is using for authorizing in your app build.gradle file. Below is an example of how this looks for the auth sample project using spotify-sdk://auth redirect URI:

    defaultConfig {
        manifestPlaceholders = [redirectSchemeName: "spotify-sdk", redirectHostName: "auth"]
        ...
    }

To learn more see the Authentication Guide and the API reference.

The following entries are merged into your manifest when you add the library:

<uses-permission android:name="android.permission.INTERNET"/>

<activity
    android:name="com.spotify.sdk.android.auth.LoginActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>

Sample Code

Checkout the sample project.

Contributing

You are welcome to contribute to this project. Please make sure that:

  • New code is test covered
  • Features and APIs are well documented
  • ./gradlew check must succeed

Code of conduct

This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.