2023-01-23 08:11:40 +01:00
|
|
|
package idp
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"golang.org/x/text/language"
|
2023-03-14 20:20:38 +01:00
|
|
|
|
|
|
|
"github.com/zitadel/zitadel/internal/domain"
|
2023-01-23 08:11:40 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
// Provider is the minimal implementation for a 3rd party authentication provider
|
|
|
|
type Provider interface {
|
|
|
|
Name() string
|
|
|
|
BeginAuth(ctx context.Context, state string, params ...any) (Session, error)
|
|
|
|
IsLinkingAllowed() bool
|
|
|
|
IsCreationAllowed() bool
|
|
|
|
IsAutoCreation() bool
|
|
|
|
IsAutoUpdate() bool
|
|
|
|
}
|
|
|
|
|
|
|
|
// User contains the information of a federated user.
|
|
|
|
type User interface {
|
|
|
|
GetID() string
|
|
|
|
GetFirstName() string
|
|
|
|
GetLastName() string
|
|
|
|
GetDisplayName() string
|
|
|
|
GetNickname() string
|
|
|
|
GetPreferredUsername() string
|
2023-03-14 20:20:38 +01:00
|
|
|
GetEmail() domain.EmailAddress
|
2023-01-23 08:11:40 +01:00
|
|
|
IsEmailVerified() bool
|
2023-03-14 20:20:38 +01:00
|
|
|
GetPhone() domain.PhoneNumber
|
2023-01-23 08:11:40 +01:00
|
|
|
IsPhoneVerified() bool
|
|
|
|
GetPreferredLanguage() language.Tag
|
|
|
|
GetAvatarURL() string
|
|
|
|
GetProfile() string
|
|
|
|
}
|