Selector
Customisable authentication menu
Last updated
Customisable authentication menu
Last updated
The Selector authenticator is responsible for presenting a list of authentication options for the user to select from (a "menu").
The selector completes when the user selected authentication option (single authenticator or chain) completes.
Selectors can be nested with other selectors and chains.
Authenticator type: Selector
Common Authenticator configuration can be found here.
Name | Description | Default | Mandatory |
---|---|---|---|
An option represents a user selectable option in the view.
The include predicate is a boolean expression. If the expression is evaluated to true
the option is included in the list of available options and displayed to the user.
If filtering results in only one option, automatic selection is performed unless turned off ("auto_select": false
). If filtering results in no option an error is displayed unless automatic completion is turned on ("auto_complete": true
).
The actual filter is an ECMA-script (JavaScript) that MUST evaluate to true
, false
or to a boolean function
returning true
or false
.
During expression evaluation data is made available in scopes. A scope is a map (i.e key-values or hash) where values are accessed using a name and plain dot notation.
In JavaScript dot notation is NOT supported for list/array indexing.
Use the following syntax to address an element in a list:
session.roles[0].name
The following scopes are available:
API follows the general conventions of the Fortified Web Authenticator API.
Selector authenticators supports the following messages:
Init message must be sent before/during the view is loading. Response contains the options that should be presented to the user.
Init may be called while authenticator is in progress under the following circumstances:
Callback from selected authenticator
Browser reload (user refreshes page)
Browser back (user cancels selected authenticator and navigates back)
The action message is used for selecting an option. This message is triggered by a user action.
The complete response message is sent when the authentication has completed. If message contains a location property; view must redirect user agent to the supplied location.
There are a number of logos that comes default. All are located in the assets/svg/
folder
Default translations provided:
Name | Description | Default | Mandatory |
---|---|---|---|
Name | Description | Case-insensitive |
---|---|---|
Reason | Description |
---|---|
Reason | Description |
---|---|
For custom logos use and refer to the image location as above
options
List of options to be presented to the user. A selector without options will block the authentication and therefor at least one option must be present.
[]
auto_select
Turns off automatic selection if only one option is available.
true
auto_complete
Turns on automatic authentication completion (flow continues) if no options is available (selector is not displayed).
false
lazy_expiry
Turns on automatic re-selection of previously selected option when authenticator has expired (selector is not displayed).
false
verbose
Turns on extended trace logging. Use for troubleshooting only.
false
id
Configuration unique identifier for option.
target
Id of authenticator implementing the option.
label
Option label. Text or translation key.
logo
Logo URL for option. Preferably monochrome svg logo.
include_expr
Predicate expression controlling if option should be included (displayed/selectable) or not.
true
request
The current authentication request including HTTP headers
and params
session
The current session.
state
The current authentication state.
exports
Exported properties.
input
Authenticator input
subject
Current authentication subject (not a scope)
Selected authenticator failed
The selected authenticator failed.
Unknown status: <status>
The selected authenticator has an unknown status (Not PENDING
, IN_PROGRESS
, COMPLETED
or FAILED
)
Invalid status: <status>
Protocol error. Init called when authenticator is not in status PENDING
or IN_PROGRESS
.
Invalid option: <option-id>
An invalid option-id was supplied. Only option-ids from init are valid.
Invalid state
Protocol error. Operation is called in an invalid state, for example if action
is called before init
.