6 "github.com/coreos/go-oidc"
7 "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
10// Provider represents an upstream identity provider implementation
11type Provider interface {
13 GetEmailAddress(ctx context.Context, s *sessions.SessionState) (string, error)
14 GetUserName(ctx context.Context, s *sessions.SessionState) (string, error)
15 Redeem(ctx context.Context, redirectURI, code string) (*sessions.SessionState, error)
16 ValidateGroup(string) bool
17 ValidateSessionState(ctx context.Context, s *sessions.SessionState) bool
18 GetLoginURL(redirectURI, finalRedirect string) string
19 RefreshSessionIfNeeded(ctx context.Context, s *sessions.SessionState) (bool, error)
20 CreateSessionStateFromBearerToken(ctx context.Context, rawIDToken string, idToken *oidc.IDToken) (*sessions.SessionState, error)
23// New provides a new Provider based on the configured provider string
24func New(provider string, p *ProviderData) Provider {
27 return NewLinkedInProvider(p)
29 return NewFacebookProvider(p)
31 return NewGitHubProvider(p)
33 return NewKeycloakProvider(p)
35 return NewAzureProvider(p)
37 return NewGitLabProvider(p)
39 return NewOIDCProvider(p)
41 return NewLoginGovProvider(p)
43 return NewBitbucketProvider(p)
45 return NewNextcloudProvider(p)
47 return NewDigitalOceanProvider(p)
49 return NewGoogleProvider(p)
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list