Documentation ¶
Overview ¶
Package spotify implements the OAuth protocol for authenticating users through Spotify. This package can be used as a reference implementation of an OAuth provider for Goth.
Index ¶
- Constants
- type Provider
- func (p *Provider) BeginAuth(state string) (goth.Session, error)
- func (p *Provider) Client() *http.Client
- func (p *Provider) Debug(debug bool)
- func (p *Provider) FetchUser(session goth.Session) (goth.User, error)
- func (p *Provider) Name() string
- func (p *Provider) RefreshToken(refreshToken string) (*oauth2.Token, error)
- func (p *Provider) RefreshTokenAvailable() bool
- func (p *Provider) SetName(name string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- type Session
Constants ¶
const ( // ScopePlaylistReadPrivate seeks permission to read // a user's collaborative playlists. ScopePlaylistReadCollaborative = "playlist-read-collaborative" // ScopePlaylistReadPrivate seeks permission to read // a user's private playlists. ScopePlaylistReadPrivate = "playlist-read-private" // ScopePlaylistModifyPublic seeks write access // to a user's public playlists. ScopePlaylistModifyPublic = "playlist-modify-public" // ScopePlaylistModifyPrivate seeks write access to // a user's private playlists. ScopePlaylistModifyPrivate = "playlist-modify-private" // ScopeUserFollowModify seeks write/delete access to // the list of artists and other users that a user follows. ScopeUserFollowModify = "user-follow-modify" // ScopeUserFollowRead seeks read access to the list of // artists and other users that a user follows. ScopeUserFollowRead = "user-follow-read" // ScopeUserLibraryModify seeks write/delete access to a // user's "Your Music" library. ScopeUserLibraryModify = "user-library-modify" // ScopeUserLibraryRead seeks read access to a user's // "Your Music" library. ScopeUserLibraryRead = "user-library-read" // ScopeUserReadPrivate seeks read access to a user's // subsription details (type of user account) ScopeUserReadPrivate = "user-read-private" // ScopeUserReadEmail seeks read access to a user's // email address. ScopeUserReadEmail = "user-read-email" // ScopeUGCImageUpload seeks write access to user-provided images. ScopeUGCImageUpload = "ugc-image-upload" // ScopeUserReadPlaybackState seeks read access to a user’s player state. ScopeUserReadPlaybackState = "user-read-playback-state" // ScopeUserModifyPlaybackState seeks write access to a user’s playback state ScopeUserModifyPlaybackState = "user-modify-playback-state" // ScopeUserReadCurrentlyPlaying seeks read access to a user’s currently playing track ScopeUserReadCurrentlyPlaying = "user-read-currently-playing" // ScopeStreaming seeks to control playback of a Spotify track. // This scope is currently available to the Web Playback SDK. // The user must have a Spotify Premium account. ScopeStreaming = "streaming" // ScopeAppRemoteControl seeks remote control playback of Spotify. // This scope is currently available to Spotify iOS and Android SDKs. ScopeAppRemoteControl = "app-remote-control" // ScopeUserTopRead seeks read access to a user's top artists and tracks. ScopeUserTopRead = "user-top-read" // ScopeUserReadRecentlyPlayed seeks read access to a user’s recently played tracks. ScopeUserReadRecentlyPlayed = "user-read-recently-played" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct { ClientKey string Secret string CallbackURL string HTTPClient *http.Client // contains filtered or unexported fields }
Provider is the implementation of `goth.Provider` for accessing Spotify.
func New ¶
New creates a new Spotify provider and sets up important connection details. You should always call `spotify.New` to get a new Provider. Never try to create one manually.
func (*Provider) FetchUser ¶
FetchUser will go to Spotify and access basic information about the user.
func (*Provider) RefreshToken ¶
RefreshToken get new access token based on the refresh token
func (*Provider) RefreshTokenAvailable ¶
RefreshTokenAvailable refresh token is provided by auth provider or not
type Session ¶
Session stores data during the auth process with Spotify.
func (*Session) Authorize ¶
Authorize completes the the authorization with Spotify and returns the access token to be stored for future use.
func (Session) GetAuthURL ¶
GetAuthURL will return the URL set by calling the `BeginAuth` function on the Spotify provider.