Documentation ¶
Overview ¶
Package discord implements the OAuth2 protocol for authenticating users through Discord. This package can be used as a reference implementation of an OAuth2 provider for Discord.
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) SetPermissions(permissions string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- type Session
Constants ¶
const ( // ScopeIdentify allows /users/@me without email ScopeIdentify string = "identify" // ScopeEmail enables /users/@me to return an email ScopeEmail string = "email" // ScopeConnections allows /users/@me/connections to return linked Twitch and YouTube accounts ScopeConnections string = "connections" // ScopeGuilds allows /users/@me/guilds to return basic information about all of a user's guilds ScopeGuilds string = "guilds" // ScopeJoinGuild allows /invites/{invite.id} to be used for joining a user's guild ScopeJoinGuild string = "guilds.join" // ScopeGroupDMjoin allows your app to join users to a group dm ScopeGroupDMjoin string = "gdm.join" // ScopeBot is for oauth2 bots, this puts the bot in the user's selected guild by default ScopeBot string = "bot" // ScopeWebhook generates a webhook that is returned in the oauth token response for authorization code grants ScopeWebhook string = "webhook.incoming" // ScopeReadGuilds allows /users/@me/guilds/{guild.id}/member to return a user's member information in a guild ScopeReadGuilds string = "guilds.members.read" )
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 Discord
func New ¶
New creates a new Discord provider, and sets up important connection details. You should always call `discord.New` to get a new Provider. Never try to create one manually.
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
func (*Provider) SetName ¶
SetName is to update the name of the provider (needed in case of multiple providers of 1 type)
func (*Provider) SetPermissions ¶
SetPermissions is to update the bot permissions (used for when ScopeBot is set)
type Session ¶
Session stores data during the auth process with Discord
func (*Session) Authorize ¶
Authorize completes the authorization with Discord 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 Discord provider.