zitadel/internal/idp/provider.go
Livio Spring 18788b6045
fix: improve login_hint usage on IDPs (#6899)
* only set prompt if no login_hint is set

* update to current state and cleanup

(cherry picked from commit 0386fe7f96)
2023-11-14 10:47:27 +01:00

52 lines
1.2 KiB
Go

package idp
import (
"context"
"golang.org/x/text/language"
"github.com/zitadel/zitadel/internal/domain"
)
// Provider is the minimal implementation for a 3rd party authentication provider
type Provider interface {
Name() string
BeginAuth(ctx context.Context, state string, params ...Parameter) (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
GetEmail() domain.EmailAddress
IsEmailVerified() bool
GetPhone() domain.PhoneNumber
IsPhoneVerified() bool
GetPreferredLanguage() language.Tag
GetAvatarURL() string
GetProfile() string
}
// Parameter allows to pass specific parameter to the BeginAuth function
type Parameter interface {
setValue()
}
// UserAgentID allows to pass the user agent ID of the auth request to BeginAuth
type UserAgentID string
func (p UserAgentID) setValue() {}
// LoginHintParam allows to pass a login_hint to BeginAuth
type LoginHintParam string
func (p LoginHintParam) setValue() {}