Documentation ¶
Index ¶
- Constants
- Variables
- func HasReachedState(expected, actual State) bool
- func TestFlowPersister(p interface{ ... }) func(t *testing.T)
- type AdminHandler
- type ErrorHandler
- type ErrorHandlerProvider
- type Flow
- func (f *Flow) AfterFind(_ *pop.Connection) error
- func (f *Flow) AfterSave(c *pop.Connection) error
- func (f *Flow) AppendTo(src *url.URL) *url.URL
- func (f *Flow) BeforeSave(_ *pop.Connection) error
- func (f *Flow) GetID() uuid.UUID
- func (f *Flow) MethodToForm(id string) (form.Form, error)
- func (f Flow) TableName() string
- func (f *Flow) Valid() error
- type FlowExpiredError
- type FlowMethod
- type FlowMethodConfig
- type FlowMethodConfigMock
- type FlowMethodConfigurator
- type FlowMethods
- type FlowMethodsRaw
- type FlowPersistenceProvider
- type FlowPersister
- type Handler
- type HandlerProvider
- type PublicHandler
- type State
- type Strategies
- type Strategy
- type StrategyProvider
Constants ¶
View Source
const ( RouteInitBrowserFlow = "/self-service/recovery/browser" RouteInitAPIFlow = "/self-service/recovery/api" RouteGetFlow = "/self-service/recovery/flows" )
View Source
const (
StrategyRecoveryLinkName = "link"
)
Variables ¶
View Source
var (
ErrAlreadyLoggedIn = herodot.ErrBadRequest.WithReason("A valid session was detected and thus recovery is not possible.")
)
Functions ¶
func HasReachedState ¶
func TestFlowPersister ¶
func TestFlowPersister(p interface { FlowPersister identity.PrivilegedPool }) func(t *testing.T)
Types ¶
type AdminHandler ¶
type AdminHandler interface {
RegisterAdminRecoveryRoutes(admin *x.RouterAdmin)
}
type ErrorHandler ¶
type ErrorHandler struct {
// contains filtered or unexported fields
}
func NewErrorHandler ¶
func NewErrorHandler(d errorHandlerDependencies, c configuration.Provider) *ErrorHandler
func (*ErrorHandler) WriteFlowError ¶
func (s *ErrorHandler) WriteFlowError( w http.ResponseWriter, r *http.Request, methodName string, f *Flow, err error, )
type ErrorHandlerProvider ¶
type ErrorHandlerProvider interface {
RecoveryFlowErrorHandler() *ErrorHandler
}
type Flow ¶
type Flow struct { // ID represents the request's unique ID. When performing the recovery flow, this // represents the id in the recovery ui's query parameter: http://<selfservice.flows.recovery.ui_url>?request=<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 request expires. If the user still wishes to update the setting, // a new request 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 request 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" faker:"-" db:"active_method"` // Messages contains a list of messages to be displayed in the Recovery UI. Omitting these // messages makes it significantly harder for users to figure out what is going on. // // More documentation on messages can be found in the [User Interface Documentation](https://www.ory.sh/kratos/docs/concepts/ui-user-interface/). Messages text.Messages `json:"messages" faker:"-" db:"messages"` // Methods contains context for all account recovery methods. If a registration request has been // processed, but for example the password is incorrect, this will contain error messages. // // required: true Methods map[string]*FlowMethod `json:"methods" faker:"recovery_flow_methods" db:"-"` // MethodsRaw is a helper struct field for gobuffalo.pop. MethodsRaw FlowMethodsRaw `json:"-" faker:"-" has_many:"selfservice_recovery_flow_methods" fk_id:"selfservice_recovery_flow_id"` // State represents the state of this request: // // - choose_method: ask the user to choose a method (e.g. recover account via email) // - sent_email: the email has been sent to the user // - passed_challenge: the request was successful and the recovery challenge was passed. // // required: true State State `json:"state" faker:"-" db:"state"` // CSRFToken contains the anti-csrf token associated with this request. CSRFToken string `json:"-" db:"csrf_token"` // 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"` // RecoveredIdentityID is a helper struct field for gobuffalo.pop. RecoveredIdentityID uuid.NullUUID `json:"-" faker:"-" db:"recovered_identity_id"` }
A Recovery Flow
This request is used when an identity wants to recover their account.
We recommend reading the [Account Recovery Documentation](../self-service/flows/password-reset-account-recovery)
swagger:model recoveryFlow
func (*Flow) BeforeSave ¶
type FlowExpiredError ¶
type FlowExpiredError struct { *herodot.DefaultError // contains filtered or unexported fields }
func NewFlowExpiredError ¶
func NewFlowExpiredError(at time.Time) *FlowExpiredError
type FlowMethod ¶
type FlowMethod struct { // Method contains the request credentials type. // // required: true Method string `json:"method" db:"method"` // Config is the credential type's config. // // required: true Config *FlowMethodConfig `json:"config" db:"config"` // ID is a helper struct field for gobuffalo.pop. ID uuid.UUID `json:"-" db:"id"` // FlowID is a helper struct field for gobuffalo.pop. FlowID uuid.UUID `json:"-" db:"selfservice_recovery_flow_id"` // Flow is a helper struct field for gobuffalo.pop. Flow *Flow `json:"-" belongs_to:"selfservice_flow_request" fk_id:"FlowID"` // CreatedAt is a helper struct field for gobuffalo.pop. CreatedAt time.Time `json:"-" db:"created_at"` // UpdatedAt is a helper struct field for gobuffalo.pop. UpdatedAt time.Time `json:"-" db:"updated_at"` }
swagger:model recoveryFlowMethod
func (FlowMethod) TableName ¶
func (u FlowMethod) TableName() string
type FlowMethodConfig ¶
type FlowMethodConfig struct { // swagger:ignore FlowMethodConfigurator FlowMethodConfigMock }
swagger:model recoveryFlowMethodConfig
func (*FlowMethodConfig) MarshalJSON ¶
func (c *FlowMethodConfig) MarshalJSON() ([]byte, error)
func (*FlowMethodConfig) Scan ¶
func (c *FlowMethodConfig) Scan(value interface{}) error
func (*FlowMethodConfig) UnmarshalJSON ¶
func (c *FlowMethodConfig) UnmarshalJSON(data []byte) error
type FlowMethodConfigMock ¶
swagger:model recoveryFlowMethodConfigPayload
type FlowMethodConfigurator ¶
type FlowMethodConfigurator interface { form.ErrorParser form.FieldSetter form.FieldUnsetter form.ValueSetter form.Resetter form.MessageResetter form.CSRFSetter form.FieldSorter form.MessageAdder }
swagger:ignore
type FlowMethods ¶
type FlowMethods map[string]*FlowMethod
func (FlowMethods) TableName ¶
func (u FlowMethods) TableName() string
type FlowMethodsRaw ¶
type FlowMethodsRaw []FlowMethod // workaround for https://github.com/gobuffalo/pop/pull/478
func (FlowMethodsRaw) TableName ¶
func (u FlowMethodsRaw) TableName() string
type FlowPersistenceProvider ¶
type FlowPersistenceProvider interface {
RecoveryFlowPersister() FlowPersister
}
type FlowPersister ¶
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler(d handlerDependencies, c configuration.Provider) *Handler
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 {
RecoveryHandler() *Handler
}
type PublicHandler ¶
type PublicHandler interface {
RegisterPublicRecoveryRoutes(public *x.RouterPublic)
}
type Strategies ¶
type Strategies []Strategy
func (Strategies) MustStrategy ¶
func (s Strategies) MustStrategy(id string) Strategy
func (Strategies) RegisterAdminRoutes ¶
func (s Strategies) RegisterAdminRoutes(r *x.RouterAdmin)
func (Strategies) RegisterPublicRoutes ¶
func (s Strategies) RegisterPublicRoutes(r *x.RouterPublic)
type StrategyProvider ¶
type StrategyProvider interface {
RecoveryStrategies() Strategies
}
Click to show internal directories.
Click to hide internal directories.