spotify_ex v2.2.1 Spotify.Authentication View Source

Authenticates the Spotify user.

After your app is authorized, the user must be authenticated. A redirect URL is specified in the config folder. This is the URL that Spotify redirects to after authorization, and should ultimately end up hitting this module's authenticate function. If the authorization is successful, the param code will be present.

If a refresh token still exists, the client will refresh the access token.

You have the option to pass either a Plug.Conn or a Spotify.Credentials struct into these functions. If you pass Conn, the auth tokens will be saved in cookies. If you pass Credentials, you will be responsible for persisting the auth tokens between requests.

Link to this section Summary

Functions

Authenticates the user

Attempts to refresh your access token if the refresh token exists. Returns :unauthorized if there is no refresh token

Checks for refresh and access tokens

Link to this section Functions

Link to this function

authenticate(conn_or_auth, map) View Source

Authenticates the user

The authorization code must be present from spotify or an exception will be raised. The token will be refreshed if possible, otherwise the app will request new access and request tokens.

Example:

Spotify.authenticate(conn, %{"code" => code})
# {:ok, conn}

Spotify.authenticate(conn, %{"not_a_code" => invalid})
# AuthenticationError, "No code provided by Spotify. Authorize your app again"

Spotify.authenticate(auth, params)
# {:ok, auth}

Attempts to refresh your access token if the refresh token exists. Returns :unauthorized if there is no refresh token.

Link to this function

tokens_present?(conn_or_auth) View Source

Checks for refresh and access tokens

Example:

defmodule PlayListController do
  plug :check_tokens

  def check_tokens do
    unless Spotify.Authentication.tokens_present?(conn) do
      redirect conn, to: authorization_path(:authorize)
    end
  end
end