Documentation ¶
Index ¶
- Constants
- Variables
- func ContinuityKey(id string) string
- func ContinuityOptions(p interface{}, i *identity.Identity) []continuity.ManagerOption
- func GetFlowID(r *http.Request) (uuid.UUID, error)
- func OnUnauthenticated(reg interface{ ... }) func(http.ResponseWriter, *http.Request, httprouter.Params)
- func PostHookPostPersistExecutorNames(e []PostHookPostPersistExecutor) []string
- func PostHookPrePersistExecutorNames(e []PostHookPrePersistExecutor) []string
- func WithCallback(cb func(ctxUpdate *UpdateContext) error) func(o *postSettingsHookOptions)
- type APIFlowResponse
- type ErrorHandler
- type ErrorHandlerProvider
- type Flow
- type FlowExpiredError
- type FlowNeedsReAuth
- type FlowPersistenceProvider
- type FlowPersister
- type Handler
- func (h *Handler) FromOldFlow(w http.ResponseWriter, r *http.Request, i *identity.Identity, of Flow) (*Flow, error)
- func (h *Handler) NewFlow(w http.ResponseWriter, r *http.Request, i *identity.Identity, ft flow.Type) (*Flow, error)
- func (h *Handler) RegisterAdminRoutes(admin *x.RouterAdmin)
- func (h *Handler) RegisterPublicRoutes(public *x.RouterPublic)
- type HandlerProvider
- type HookExecutor
- type HookExecutorProvider
- type HooksProvider
- type PostHookPostPersistExecutor
- type PostHookPostPersistExecutorFunc
- type PostHookPrePersistExecutor
- type PostHookPrePersistExecutorFunc
- type PostSettingsHookOption
- type State
- type Strategies
- type Strategy
- type StrategyProvider
- type UpdateContext
- type UpdatePayload
Constants ¶
View Source
const ( RouteInitBrowserFlow = "/self-service/settings/browser" RouteInitAPIFlow = "/self-service/settings/api" RouteGetFlow = "/self-service/settings/flows" RouteSubmitFlow = "/self-service/settings" ContinuityPrefix = "ory_kratos_settings" )
View Source
const (
StrategyProfile = "profile"
)
Variables ¶
View Source
var (
ErrContinuePreviousAction = errors.New("found prior action")
)
View Source
var (
ErrHookAbortRequest = errors.New("aborted settings hook execution")
)
Functions ¶
func ContinuityKey ¶
func ContinuityOptions ¶
func ContinuityOptions(p interface{}, i *identity.Identity) []continuity.ManagerOption
func OnUnauthenticated ¶
func OnUnauthenticated(reg interface { config.Provider x.WriterProvider }) func(http.ResponseWriter, *http.Request, httprouter.Params)
func PostHookPostPersistExecutorNames ¶
func PostHookPostPersistExecutorNames(e []PostHookPostPersistExecutor) []string
func PostHookPrePersistExecutorNames ¶
func PostHookPrePersistExecutorNames(e []PostHookPrePersistExecutor) []string
func WithCallback ¶
func WithCallback(cb func(ctxUpdate *UpdateContext) error) func(o *postSettingsHookOptions)
Types ¶
type APIFlowResponse ¶
type APIFlowResponse struct { // The Flow // // required: true Flow *Flow `json:"flow"` // The Identity // // The updated identity // // required: true Identity *identity.Identity `json:"identity"` }
The Response for Settings Flows via API
swagger:model successfulSelfServiceSettingsWithoutBrowser
type ErrorHandler ¶
type ErrorHandler struct {
// contains filtered or unexported fields
}
func NewErrorHandler ¶
func NewErrorHandler(d errorHandlerDependencies) *ErrorHandler
func (*ErrorHandler) WriteFlowError ¶
type ErrorHandlerProvider ¶
type ErrorHandlerProvider interface{ SettingsFlowErrorHandler() *ErrorHandler }
type Flow ¶
type Flow struct { // ID represents the flow's unique ID. When performing the settings flow, this // represents the id in the settings ui's query parameter: http://<selfservice.flows.settings.ui_url>?flow=<id> // // required: true // type: string // format: uuid ID uuid.UUID `json:"id" db:"id" faker:"-"` // Type represents the flow's type which can be either "api" or "browser", depending on the flow interaction. Type flow.Type `json:"type" db:"type" faker:"flow_type"` // ExpiresAt is the time (UTC) when the flow expires. If the user still wishes to update the setting, // a new flow has to be initiated. // // required: true ExpiresAt time.Time `json:"expires_at" faker:"time_type" db:"expires_at"` // IssuedAt is the time (UTC) when the flow occurred. // // required: true IssuedAt time.Time `json:"issued_at" faker:"time_type" db:"issued_at"` // RequestURL is the initial URL that was requested from Ory Kratos. It can be used // to forward information contained in the URL's path or query for example. // // required: true RequestURL string `json:"request_url" db:"request_url"` // Active, if set, contains the registration method that is being used. It is initially // not set. Active sqlxx.NullString `json:"active,omitempty" db:"active_method"` // UI contains data which must be shown in the user interface. // // required: true UI *container.Container `json:"ui" db:"ui"` // Identity contains all of the identity's data in raw form. // // required: true Identity *identity.Identity `json:"identity" faker:"identity" db:"-" belongs_to:"identities" fk_id:"IdentityID"` // State represents the state of this flow. It knows two states: // // - show_form: No user data has been collected, or it is invalid, and thus the form should be shown. // - success: Indicates that the settings flow has been updated successfully with the provided data. // Done will stay true when repeatedly checking. If set to true, done will revert back to false only // when a flow with invalid (e.g. "please use a valid phone number") data was sent. // // required: true State State `json:"state" faker:"-" db:"state"` // IdentityID is a helper struct field for gobuffalo.pop. IdentityID uuid.UUID `json:"-" faker:"-" db:"identity_id"` // CreatedAt is a helper struct field for gobuffalo.pop. CreatedAt time.Time `json:"-" faker:"-" db:"created_at"` // UpdatedAt is a helper struct field for gobuffalo.pop. UpdatedAt time.Time `json:"-" faker:"-" db:"updated_at"` NID uuid.UUID `json:"-" faker:"-" db:"nid"` }
Flow represents a Settings Flow
This flow is used when an identity wants to update settings (e.g. profile data, passwords, ...) in a selfservice manner.
We recommend reading the [User Settings Documentation](../self-service/flows/user-settings)
swagger:model selfServiceSettingsFlow
func (*Flow) GetRequestURL ¶
type FlowExpiredError ¶
type FlowExpiredError struct { *herodot.DefaultError // contains filtered or unexported fields }
func NewFlowExpiredError ¶
func NewFlowExpiredError(at time.Time) *FlowExpiredError
type FlowNeedsReAuth ¶
type FlowNeedsReAuth struct {
*herodot.DefaultError
}
func NewFlowNeedsReAuth ¶
func NewFlowNeedsReAuth() *FlowNeedsReAuth
type FlowPersistenceProvider ¶
type FlowPersistenceProvider interface {
SettingsFlowPersister() FlowPersister
}
type FlowPersister ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler(d handlerDependencies) *Handler
func (*Handler) FromOldFlow ¶
func (*Handler) RegisterAdminRoutes ¶
func (h *Handler) RegisterAdminRoutes(admin *x.RouterAdmin)
func (*Handler) RegisterPublicRoutes ¶
func (h *Handler) RegisterPublicRoutes(public *x.RouterPublic)
type HandlerProvider ¶
type HandlerProvider interface {
SettingsHandler() *Handler
}
type HookExecutor ¶
type HookExecutor struct {
// contains filtered or unexported fields
}
func NewHookExecutor ¶
func NewHookExecutor(d executorDependencies) *HookExecutor
func (*HookExecutor) PostSettingsHook ¶
func (e *HookExecutor) PostSettingsHook(w http.ResponseWriter, r *http.Request, settingsType string, ctxUpdate *UpdateContext, i *identity.Identity, opts ...PostSettingsHookOption) error
type HookExecutorProvider ¶
type HookExecutorProvider interface {
SettingsHookExecutor() *HookExecutor
}
type HooksProvider ¶
type HooksProvider interface { PostSettingsPrePersistHooks(ctx context.Context, settingsType string) []PostHookPrePersistExecutor PostSettingsPostPersistHooks(ctx context.Context, settingsType string) []PostHookPostPersistExecutor }
type PostHookPostPersistExecutorFunc ¶
type PostHookPostPersistExecutorFunc func(w http.ResponseWriter, r *http.Request, a *Flow, s *identity.Identity) error
func (PostHookPostPersistExecutorFunc) ExecuteSettingsPostPersistHook ¶
func (f PostHookPostPersistExecutorFunc) ExecuteSettingsPostPersistHook(w http.ResponseWriter, r *http.Request, a *Flow, s *identity.Identity) error
type PostHookPrePersistExecutorFunc ¶
type PostHookPrePersistExecutorFunc func(w http.ResponseWriter, r *http.Request, a *Flow, s *identity.Identity) error
func (PostHookPrePersistExecutorFunc) ExecuteSettingsPrePersistHook ¶
func (f PostHookPrePersistExecutorFunc) ExecuteSettingsPrePersistHook(w http.ResponseWriter, r *http.Request, a *Flow, s *identity.Identity) error
type PostSettingsHookOption ¶
type PostSettingsHookOption func(o *postSettingsHookOptions)
type State ¶
type State string
State represents the state of this flow. It knows two states:
- show_form: No user data has been collected, or it is invalid, and thus the form should be shown.
- success: Indicates that the settings flow has been updated successfully with the provided data. Done will stay true when repeatedly checking. If set to true, done will revert back to false only when a flow with invalid (e.g. "please use a valid phone number") data was sent.
swagger:model selfServiceSettingsFlowState
type Strategies ¶
type Strategies []Strategy
func (Strategies) MustStrategy ¶
func (s Strategies) MustStrategy(id string) Strategy
func (Strategies) RegisterPublicRoutes ¶
func (s Strategies) RegisterPublicRoutes(r *x.RouterPublic)
type StrategyProvider ¶
type StrategyProvider interface { SettingsStrategies(ctx context.Context) Strategies AllSettingsStrategies() Strategies }
type UpdateContext ¶
type UpdateContext struct { Session *session.Session Flow *Flow // contains filtered or unexported fields }
func PrepareUpdate ¶
func PrepareUpdate(d interface { x.LoggingProvider continuity.ManagementProvider }, w http.ResponseWriter, r *http.Request, f *Flow, ss *session.Session, name string, payload UpdatePayload) (*UpdateContext, error)
func (*UpdateContext) GetIdentityToUpdate ¶
func (c *UpdateContext) GetIdentityToUpdate() *identity.Identity
func (UpdateContext) GetSessionIdentity ¶
func (c UpdateContext) GetSessionIdentity() *identity.Identity
func (*UpdateContext) UpdateIdentity ¶
func (c *UpdateContext) UpdateIdentity(i *identity.Identity)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.