feat: add basic structure of idp templates (#5053)

add basic structure and implement first providers for IDP templates to be able to manage and use them in the future
This commit is contained in:
Livio Spring
2023-01-23 08:11:40 +01:00
committed by GitHub
parent 7b5135e637
commit 598a4d2d4b
29 changed files with 3907 additions and 54 deletions

34
internal/idp/provider.go Normal file
View File

@@ -0,0 +1,34 @@
package idp
import (
"context"
"golang.org/x/text/language"
)
// 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
GetEmail() string
IsEmailVerified() bool
GetPhone() string
IsPhoneVerified() bool
GetPreferredLanguage() language.Tag
GetAvatarURL() string
GetProfile() string
}