@@ -87,21 +87,29 @@ func (p *ProviderData) GetLoginURL(redirectURI, state string) string {
89// GetEmailAddress returns the Account email address
89// GetEmailAddress returns the Account email address
90+// DEPRECATED: Migrate to EnrichSessionState
90−func (p *ProviderData) GetEmailAddress(ctx context.Context, s *sessions.SessionState) (string, error) {
91+func (p *ProviderData) GetEmailAddress(_ context.Context, _ *sessions.SessionState) (string, error) {
91 return "", ErrNotImplemented
92 return "", ErrNotImplemented
94// GetUserName returns the Account username
95// GetUserName returns the Account username
96+// DEPRECATED: Migrate to EnrichSessionState
95−func (p *ProviderData) GetUserName(ctx context.Context, s *sessions.SessionState) (string, error) {
97+func (p *ProviderData) GetUserName(_ context.Context, _ *sessions.SessionState) (string, error) {
96 return "", ErrNotImplemented
98 return "", ErrNotImplemented
99// ValidateGroup validates that the provided email exists in the configured provider
101// ValidateGroup validates that the provided email exists in the configured provider
100// email group(s).
102// email group(s).
101−func (p *ProviderData) ValidateGroup(email string) bool {
103+func (p *ProviderData) ValidateGroup(_ string) bool {
102 return true
104 return true
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 {
105// ValidateSessionState validates the AccessToken
113// ValidateSessionState validates the AccessToken
106func (p *ProviderData) ValidateSessionState(ctx context.Context, s *sessions.SessionState) bool {
114func (p *ProviderData) ValidateSessionState(ctx context.Context, s *sessions.SessionState) bool {
107 return validateToken(ctx, p, s.AccessToken, nil)
115 return validateToken(ctx, p, s.AccessToken, nil)
@@ -109,12 +117,12 @@ func (p *ProviderData) ValidateSessionState(ctx context.Context, s *sessions.Ses
110// RefreshSessionIfNeeded should refresh the user's session if required and
118// RefreshSessionIfNeeded should refresh the user's session if required and
111// do nothing if a refresh is not required
119// 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) {
113 return false, nil
121 return false, nil
116// CreateSessionStateFromBearerToken should be implemented to allow providers
124// CreateSessionStateFromBearerToken should be implemented to allow providers
117// to convert ID tokens into sessions
125// 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) {
119 return nil, ErrNotImplemented
127 return nil, ErrNotImplemented