@@ -87,21 +87,29 @@ func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
8787}
8888
8989// GetEmailAddress returns the Account email address
90−func (p *ProviderData) GetEmailAddress(ctx context.Context, s *sessions.SessionState) (string, error) {
90+// DEPRECATED: Migrate to EnrichSessionState
91+func (p *ProviderData) GetEmailAddress(_ context.Context, _ *sessions.SessionState) (string, error) {
9192 return "", ErrNotImplemented
9293}
9394
9495// GetUserName returns the Account username
95−func (p *ProviderData) GetUserName(ctx context.Context, s *sessions.SessionState) (string, error) {
96+// DEPRECATED: Migrate to EnrichSessionState
97+func (p *ProviderData) GetUserName(_ context.Context, _ *sessions.SessionState) (string, error) {
9698 return "", ErrNotImplemented
9799}
98100
99101// ValidateGroup validates that the provided email exists in the configured provider
100102// email group(s).
101−func (p *ProviderData) ValidateGroup(email string) bool {
103+func (p *ProviderData) ValidateGroup(_ string) bool {
102104 return true
103105}
104106
107+// EnrichSessionState is called after Redeem to allow providers to enrich session fields
108+// such as User, Email, Groups with provider specific API calls.
109+func (p *ProviderData) EnrichSessionState(_ context.Context, _ *sessions.SessionState) error {
110+ return nil
111+}
112+
105113// ValidateSessionState validates the AccessToken
106114func (p *ProviderData) ValidateSessionState(ctx context.Context, s *sessions.SessionState) bool {
107115 return validateToken(ctx, p, s.AccessToken, nil)
@@ -109,12 +117,12 @@ func (p *ProviderData) ValidateSessionState(ctx context.Context, s *sessions.Ses
109117
110118// RefreshSessionIfNeeded should refresh the user's session if required and
111119// do nothing if a refresh is not required
112−func (p *ProviderData) RefreshSessionIfNeeded(ctx context.Context, s *sessions.SessionState) (bool, error) {
120+func (p *ProviderData) RefreshSessionIfNeeded(_ context.Context, _ *sessions.SessionState) (bool, error) {
113121 return false, nil
114122}
115123
116124// CreateSessionStateFromBearerToken should be implemented to allow providers
117125// to convert ID tokens into sessions
118−func (p *ProviderData) CreateSessionStateFromBearerToken(ctx context.Context, rawIDToken string, idToken *oidc.IDToken) (*sessions.SessionState, error) {
126+func (p *ProviderData) CreateSessionStateFromBearerToken(_ context.Context, _ string, _ *oidc.IDToken) (*sessions.SessionState, error) {
119127 return nil, ErrNotImplemented
120128}