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) UnmarshalSession(data string) (goth.Session, error)
- type Session
Constants ¶
const ( // allows /users/@me without email ScopeIdentify string = "identify" // enables /users/@me to return an email ScopeEmail string = "email" // allows /users/@me/connections to return linked Twitch and YouTube accounts ScopeConnections string = "connections" // allows /users/@me/guilds to return basic information about all of a user's guilds ScopeGuilds string = "guilds" // allows /invites/{invite.id} to be used for joining a user's guild ScopeJoinGuild string = "guilds.join" // allows your app to join users to a group dm ScopeGroupDMjoin string = "gdm.join" // for oauth2 bots, this puts the bot in the user's selected guild by default ScopeBot string = "bot" // this generates a webhook that is returned in the oauth token response for authorization code grants ScopeWebhook string = "webhook.incoming" )
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
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.