Documentation
¶
Index ¶
- Constants
- func GetOAuthByUserID(userID uint64, provider string) *userOAuth.Entity
- func GetUserOAuthBindings(userID uint64) map[string]*userOAuth.Entity
- func InitOAuth()
- func IsProviderEnabled(key string) bool
- func ProcessOAuthBind(userID uint64, gothUser goth.User) error
- func ProcessOAuthCallback(gothUser goth.User) (*users.EntityComplete, error)
- func ReloadCurrentProviders() error
- func ReloadProviders(config pageConfig.OAuthSettingsConfig) error
- func SaveSettings(update SettingsUpdate) error
- func StartFlow(res http.ResponseWriter, req *http.Request, provider string, userID uint64, ...) error
- func UnbindOAuth(userID uint64, provider string) error
- type AdminProviderView
- type AdminSettingsView
- type BindingProvider
- type Flow
- type OAuthUserInfo
- type ProviderUpdate
- type PublicProvider
- type SettingsUpdate
Constants ¶
View Source
const ( ProviderGitHub = "github" ProviderGoogle = "google" ProviderDiscord = "discord" )
Variables ¶
This section is empty.
Functions ¶
func GetOAuthByUserID ¶
GetOAuthByUserID returns a user's OAuth binding for a provider.
func GetUserOAuthBindings ¶
GetUserOAuthBindings returns active OAuth bindings keyed by provider.
func IsProviderEnabled ¶ added in v0.2.69
func ProcessOAuthBind ¶
ProcessOAuthBind binds a provider account to an existing user.
func ProcessOAuthCallback ¶
func ProcessOAuthCallback(gothUser goth.User) (*users.EntityComplete, error)
ProcessOAuthCallback logs in an existing OAuth user or creates a new one.
func ReloadCurrentProviders ¶ added in v0.2.69
func ReloadCurrentProviders() error
func ReloadProviders ¶ added in v0.2.69
func ReloadProviders(config pageConfig.OAuthSettingsConfig) error
func SaveSettings ¶ added in v0.2.69
func SaveSettings(update SettingsUpdate) error
func UnbindOAuth ¶
UnbindOAuth removes one OAuth binding after safety checks.
Types ¶
type AdminProviderView ¶ added in v0.2.69
type AdminProviderView struct {
Key string `json:"key"`
DisplayName string `json:"displayName"`
Kind string `json:"kind"`
Enabled bool `json:"enabled"`
ClientID string `json:"clientId"`
ClientSecretConfigured bool `json:"clientSecretConfigured"`
CallbackURL string `json:"callbackUrl"`
DiscoveryURL string `json:"discoveryUrl,omitempty"`
Scopes []string `json:"scopes,omitempty"`
}
type AdminSettingsView ¶ added in v0.2.69
type AdminSettingsView struct {
Providers []AdminProviderView `json:"providers"`
}
func AdminSettings ¶ added in v0.2.69
func AdminSettings() AdminSettingsView
type BindingProvider ¶ added in v0.2.69
type BindingProvider struct {
Key string `json:"key"`
DisplayName string `json:"displayName"`
Enabled bool `json:"enabled"`
Bound bool `json:"bound"`
BoundAt *time.Time `json:"boundAt,omitempty"`
}
func BindingProviders ¶ added in v0.2.69
func BindingProviders(userID uint64) []BindingProvider
type Flow ¶ added in v0.2.69
type Flow struct {
Provider string `json:"provider"`
Mode string `json:"mode"`
UserID uint64 `json:"userId,omitempty"`
Redirect string `json:"redirect,omitempty"`
IssuedAt int64 `json:"issuedAt"`
}
func ConsumeFlow ¶ added in v0.2.69
type OAuthUserInfo ¶
type OAuthUserInfo struct {
ID string `json:"id"`
Login string `json:"login"`
Name string `json:"name"`
Email string `json:"email"`
AvatarURL string `json:"avatar_url"`
Bio string `json:"bio"`
Blog string `json:"blog"`
Location string `json:"location"`
Provider string `json:"provider"`
}
OAuthUserInfo is the normalized user data from an OAuth provider.
type ProviderUpdate ¶ added in v0.2.69
type ProviderUpdate struct {
Key string `json:"key"`
DisplayName string `json:"displayName"`
Kind string `json:"kind"`
Enabled bool `json:"enabled"`
ClientID string `json:"clientId"`
ClientSecret string `json:"clientSecret"`
ClearClientSecret bool `json:"clearClientSecret"`
DiscoveryURL string `json:"discoveryUrl"`
Scopes []string `json:"scopes"`
}
type PublicProvider ¶ added in v0.2.69
func EnabledProviders ¶ added in v0.2.69
func EnabledProviders() []PublicProvider
type SettingsUpdate ¶ added in v0.2.69
type SettingsUpdate struct {
Providers []ProviderUpdate `json:"providers" validate:"required"`
}
Click to show internal directories.
Click to hide internal directories.