TypoScript¶
Templating¶
Set alternative Layout/Template/Partial path individually to use your own Fluid templates. There are some TypoScript constants which you can simply override:
plugin.tx_auth0.view {
templateRootPath = EXT:your_key/Resources/Private/Templates/
partialRootPath = EXT:your_key/Resources/Private/Partials/
layoutRootPath = EXT:your_key/Resources/Private/Layouts/
}
Backend Login¶
You have also the option to use your own template files for the backend login. Just adapt the following TypoScript constants:
module.tx_auth0 {
view {
layoutPath = EXT:your_key/Resources/Private/Layouts/
templatePath = EXT:your_key/Resources/Private/Templates/
}
settings.stylesheet = EXT:your_key/Resources/Public/Styles/Backend.css
}
Please make also sure that you configure the role mapping from Auth0 roles to TYPO3 user groups. Maybe you also want to set the admin flag for backend users, depending on an Auth0 role mapping.
Frontend Settings¶
Note
Please note that this settings are considered deprecated and will be removed with version 4.0.0. Please use the newly introduced generic callback instead.
You can configure generic logon and logoff URLs for your system so that the number of callbacks to be configured in Auth0 remains manageable. You can specify individual page IDs and page types for login and logout. The configuration can be done with the following TypoScript constants:
plugin.tx_auth0.settings.frontend {
callback {
targetPageType = 1547536919
targetPageUid = 1
}
logout {
targetPageType = 0
targetPageUid = 1
}
}
It is also possible to append additional parameters to the Auth0 login URL. For example, you can preselect a specific connection or open the registration tab (instead of the login tab). This can be implemented by the following TypoScript setup:
plugin.tx_auth0.settings.frontend.login.additionalAuthorizeParameters {
# key = value
login_hint = You will log in to our shop system.
connection = google-oauth2
}
Role Mapping¶
Note
Please note that this settings are considered deprecated and will be removed with version 4.0.0. Please migrate the the newly introduced YAML configuration by following the migration guide.
Configure fe_groups
and be_groups
mappings to match Auth0 roles. Use the Auth0 role identifier as key and the TYPO3 frontend
or backend user group ID as value. These settings must be made in your TypoScript setup (not constants). The Auth0 roles are
expected in the app_metadata
of the user under the roles key. Anyhow, you can configure the key by setting the TypoScript
constant plugin.tx_auth0.settings.roles.key
to a different value.
Keep in mind, that there is one special option for backend users: You can set the admin flag by assigning the value admin
to
an Auth0 role.
plugin.tx_auth0.settings.roles {
key = roles
# be_group mappings for be_users
be_users {
# mapping for Auth0 role to be_groups
# special: sets the admin flag
admin = admin
}
# fe_group mappings for fe_users
fe_users {
# mapping for Auth0 role to fe_groups
admin = 1
}
}
Property Mapping¶
Note
Please note that this settings are considered deprecated and will be removed with version 4.0.0. Please migrate the the newly introduced YAML configuration by following the migration guide.
Auth0 properties can be mapped to existing properties of TYPO3 backend or frontend users. You can configure this mapping via TypoScript. In this case, the key is the name of the TYPO3 database column and the value is the field key of the Auth0 user.
You can access the user_metadata
or app_metadata
values via dot syntax. Using the same way you can access arrays or objects
within the metadata property (e.g. user_metadata.address.primary.zip
). These settings must be made in your TypoScript setup
(not constants).
plugin.tx_auth0.settings.propertyMapping {
be_users {
username = nickname
crdate = created_at
crdate.parseFunc = strtotime
tstamp = updated_at
tstamp.parseFunc = strtotime
disable = email_verified
disable.parseFunc = bool|negate
admin = user_metadata.admin
admin.parseFunc = bool
description = user_metadata.description
}
fe_users {
crdate = created_at
crdate.parseFunc = strtotime
tstamp = updated_at
tstamp.parseFunc = strtotime
first_name = user_metadata.description
}
}
Parsing Functions¶
Parsing functions (parseFunc) are used to change properties before they are persisted in the database.
To apply multiple parsing functions you can simply use the pipe to delimiter them. These functions will then be applied in the
order you have set them. For example, a bool|negate
parseFunc will cast the property to a boolean value and then negate it.
The following parsing functions are available:
Function | Description |
---|---|
bool |
Get the boolean value. |
strtotime |
Parse about any English textual datetime description into a Unix timestamp. |
negate |
Negate the value (only for booleans). |