MCPcopy Create free account
hub / github.com/supabase/auth / Provider

Method Provider

internal/api/external.go:587–685  ·  view source on GitHub ↗

Provider returns a Provider interface for the given name.

(ctx context.Context, name string, scopes string)

Source from the content-addressed store, hash-verified

585
586// Provider returns a Provider interface for the given name.
587func (a *API) Provider(ctx context.Context, name string, scopes string) (provider.Provider, conf.OAuthProviderConfiguration, error) {
588 config := a.config
589 db := a.db.WithContext(ctx)
590 name = strings.ToLower(name)
591
592 var err error
593 var p provider.Provider
594 var pConfig conf.OAuthProviderConfiguration
595
596 // Check if this is a custom provider (format: custom:identifier)
597 if strings.HasPrefix(name, "custom:") {
598 if !config.CustomOAuth.Enabled {
599 return nil, conf.OAuthProviderConfiguration{}, fmt.Errorf("custom OAuth providers are disabled")
600 }
601 return a.loadCustomProvider(ctx, db, name, scopes)
602 }
603
604 switch name {
605 case "apple":
606 pConfig = config.External.Apple
607 p, err = provider.NewAppleProvider(ctx, pConfig, a.oidcCache)
608 case "azure":
609 pConfig = config.External.Azure
610 p, err = provider.NewAzureProvider(pConfig, scopes, a.oidcCache)
611 case "bitbucket":
612 pConfig = config.External.Bitbucket
613 p, err = provider.NewBitbucketProvider(pConfig)
614 case "discord":
615 pConfig = config.External.Discord
616 p, err = provider.NewDiscordProvider(pConfig, scopes)
617 case "facebook":
618 pConfig = config.External.Facebook
619 p, err = provider.NewFacebookProvider(pConfig, scopes)
620 case "figma":
621 pConfig = config.External.Figma
622 p, err = provider.NewFigmaProvider(pConfig, scopes)
623 case "fly":
624 pConfig = config.External.Fly
625 p, err = provider.NewFlyProvider(pConfig, scopes)
626 case "github":
627 pConfig = config.External.Github
628 p, err = provider.NewGithubProvider(pConfig, scopes)
629 case "gitlab":
630 pConfig = config.External.Gitlab
631 p, err = provider.NewGitlabProvider(pConfig, scopes)
632 case "google":
633 pConfig = config.External.Google
634 p, err = provider.NewGoogleProvider(ctx, pConfig, scopes, a.oidcCache)
635 case "kakao":
636 pConfig = config.External.Kakao
637 p, err = provider.NewKakaoProvider(pConfig, scopes)
638 case "keycloak":
639 pConfig = config.External.Keycloak
640 p, err = provider.NewKeycloakProvider(pConfig, scopes)
641 case "linkedin":
642 pConfig = config.External.Linkedin
643 p, err = provider.NewLinkedinProvider(pConfig, scopes)
644 case "linkedin_oidc":

Callers 2

OAuthProviderMethod · 0.95

Calls 15

loadCustomProviderMethod · 0.95
NewAppleProviderFunction · 0.92
NewAzureProviderFunction · 0.92
NewBitbucketProviderFunction · 0.92
NewDiscordProviderFunction · 0.92
NewFacebookProviderFunction · 0.92
NewFigmaProviderFunction · 0.92
NewFlyProviderFunction · 0.92
NewGithubProviderFunction · 0.92
NewGitlabProviderFunction · 0.92
NewGoogleProviderFunction · 0.92
NewKakaoProviderFunction · 0.92

Tested by

no test coverage detected