Templates
HIdP provides a set of basic templates that you’ll likely want to customize to match your application’s look and feel.
These templates are located in the templates/hidp directory.
To override them, create a file in your application’s template directory
with the same path as the templates you are trying to override.
Forms are rendered using Django’s built-in form rendering system, and each form is assigned their own template. In order to override the form templates, using a template from your project’s template directory some additional configuration is required.
# settings.py
INSTALLED_APPS = [
...,
"django.forms",
...,
]
FORM_RENDERER = "django.forms.renderers.TemplatesSetting"
For more information on overriding templates in general, visit Django’s documentation.
For more information on overriding form templates, read this section in Django’s documentation.
The templates available are:
Base templates
To facilitate the common use case of having a distinct layout for the pre-login and post-login pages, HIdP provides a base template hierarchy that you can extend to customize the layout of your application.
base.html
This is the root base template that every template in HIdP extends. It includes the basic HTML boilerplate for each page. Override this template to load custom CSS, scripts, and set up a base layout.
This template defines two blocks that all other templates depend on:
titleinside the HTML
titletag.bodyinside the HTML
bodytag.maininside the
bodyblock, where the main application content is rendered.
base_pre_login.html
This template extends base.html and is used for all pre-login pages. It does not
add anything over the base template and is only provided as an extension point.
base_post_login.html
This template extends base.html and is used for all post-login pages. It does not
add anything over the base template and is only provided as an extension point.
base_invalid_link.html
When a user accesses a page through a link that is no longer valid an error message is shown. To customize this message and the layout of the error page on a global basis, override this template.
This template extends base_pre_login.html. All cases that may result in an invalid
link also have a dedicated template that extends this template. These templates are
noted in the per-page documentation below.
base_email.html
This is the base template for all email templates in HIdP. It includes the basic HTML boilerplate for each email.
This template defines two blocks that all other email templates depend on:
bodyinside the HTML
bodytag.contentinside the
bodyblock, where the email content is rendered.
Inclusion templates
To make it easier to customize the look and feel of common elements across the application, HIdP provides a select number of inclusion templates that can be overridden to match your application’s design.
Inclusion templates are found in the includes directory.
forms/base_form.html
This is the base template for all forms in HIdP. It extends the default Django form
template (django/forms/div.html) (without any modifications). Override this template
to customize the layout of HIdP forms on a global basis.
Each form is assigned a template that extends this base template (again, without any modifications). These templates are noted in the per-page documentation below.
forms/submit_row.html
This template is used to render the submit button, and cancel button if available, for forms in HIdP. Override this template to customize the layout of the submit and cancel buttons on a global basis.
federated/oidc_provider_list.html
Used to render a list of buttons any time a user is offered the option to perform an action with an OIDC provider (e.g. login, registration, linking, unlinking).
Uses of this template are noted in the per-page documentation below.
federated/oidc_provider_list_item.html
Used by the oidc_provider_list.html template to render the item for a single
OIDC provider.
accounts/
All templates related to the authentication, registration, recovery and verification
can be found in this directory and subdirectories: templates/hidp/accounts.
login.html
Rendered by the LoginView.
Base template: base_pre_login.html
Form template:
accounts/forms/authentication_form.htmlaccounts/forms/rate_limited_authentication_form.html(if rate limited)
Context variables
formThe login form.
oidc_login_providersList of configured OIDC providers.
oidc_error_messageError message from the OIDC Authentication flow in case something went wrong.
self.redirect_field_name(i.e.next)The URL to redirect to after login (if present in the request).
siteThe current site instance (
RequestSiteifdjango.contrib.sitesis not installed).site_nameThe name of the current site (host name if
RequestSiteis used)password_reset_urlURL to the password reset page.
register_urlURL to the sign-up page, with a next param if
redirect_urlis available.is_rate_limitedWhether the view is rate limited or not; result of
request.limited.
Inclusion templates
federated/oidc_provider_list.htmlDisplays
oidc_login_providers(if available) to allow users to log in with OIDC.
logout_confirm.html
Rendered by the RPInitiatedLogoutView and is used to confirm the logout.
Base template: base_pre_login.html
Using the pre-login base template might sound counterintuitive, but the logout confirmation page is shown regardless of the user’s authentication status.
Context variables
applicationAn
Applicationobject.errorAn error message if an error occurred during the logout process. This is a dict with
erroranddescription.
register.html
Rendered by the RegistrationView.
Base template: base_pre_login.html
Form template: accounts/forms/user_creation_form.html
Context variables
formThe registration form.
oidc_login_providersList of configured OIDC providers.
userThe current user instance.
login_urlURL to the login page, with a next param if
redirect_urlis available.nextURL to redirect to after successful registration.
logout_urlURL to the logout page.
logout_next_urlURL to same page, redirecting to login page if necessary.
can_registerFalseif the user is authenticated.
Inclusion templates
federated/oidc_provider_list.htmlDisplays
oidc_login_providers(if available) to allow users to register with OIDC.
tos.html
Rendered by the TermsOfServiceView.
Base template: base_pre_login.html
Important
This template serves as an example and is not suited for use in production. Please
override this template to provide your own Terms of Service or disable the
agreed_to_tos field by overriding the UserCreationForm.
accounts/management/
All templates related to account management can be found
in templates/hidp/accounts/management.
manage_account.html
Rendered by the ManageAccountView.
Base template: base_post_login.html
Context variables
userThe current user instance.
logout_urlURL to the logout page.
account_management_linksList of dicts of available account management urls with the following information per link:
textThe text to show for the link.
urlReversed URL for the link.
edit_account.html
Rendered by the EditAccountView.
Base template: base_post_login.html
Form template: accounts/forms/edit_user_form.html
Context variables
formA form that allows users to update their first and last name.
cancel_urlLink for the cancel button.
edit_account_done.html
Rendered by the EditAccountDoneView.
Shows a message letting the user know that their account has been updated.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
password_change.html
Rendered by the PasswordChangeView.
Redirects to PasswordChangeDoneView after successfully changing the password.
Base template: base_post_login.html
Form template: accounts/forms/password_change_form.html
Context variables
formA form that allows users to change their password. The user also needs to enter their old password to verify the user’s identity.
cancel_urlLink for the cancel button.
password_change_done.html
Rendered by the PasswordChangeDoneView.
Shows a message letting the user know that their password has been changed.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
set_password.html
Rendered by the SetPasswordView.
If the user doesn’t have a password set they are required to have logged in recently in order to set a password. If the user hasn’t logged in recently they need to re-authenticate using one of the OIDC providers linked to their account.
Redirects to SetPasswordDoneView after successfully setting the password.
Base template: base_post_login.html
Form template: accounts/forms/set_password_form.html
Context variables
formA form that allows users to change their password.
cancel_urlLink for the cancel button.
must_reauthenticateBoolean that indicates if the user needs to re-authenticate
oidc_linked_providersList of OIDC Clients the user can use to re-authenticate (only if
must_reauthenticateisTrue).auth_next_urlURL to redirect to after re-authentication (the set password view).
Inclusion templates
federated/oidc_provider_list.htmlDisplays
oidc_linked_providers(if available) to allow users to re-authenticate.
set_password_done.html
Rendered by the SetPasswordDoneView.
Shows a message letting the user know that their password has been set.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
email_change_request.html
Rendered by the EmailChangeRequestView.
Base template: base_post_login.html
Form template: accounts/forms/email_change_request_form.html
Context variables
can_change_emailBoolean that indicates if the user can change their email address. A user must have a password set in order to change their email address.
set_password_urlURL to the set password page.
formThe email change request form, where users need to fill in a new email address and password.
cancel_urlLink for the cancel button.
email_change_request_sent.html
Rendered by the EmailChangeRequestSentView.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
email_change_confirm.html
Rendered by the EmailChangeConfirmView when accessed with a valid token.
Base template: base_post_login.html
Form template: accounts/forms/email_change_confirm_form.html
Context variables
formThe email change confirm form, where users need to confirm the change.
already_confirmed_for_this_emailboolean that indicates if the user has already confirmed the change via the used token, either for the current or proposed email.
recipientString that indicates the recipient of the email. The value is either
'current_email'or'proposed_email'.current_emailThe current email address.
proposed_emailThe proposed new email address.
cancel_urlLink for the cancel button.
email_change_confirm_invalid_link.html
Rendered by the EmailChangeConfirmView when accessed with an invalid token.
Base template: base_invalid_link.html
email_change_complete.html
Rendered by the EmailChangeCompleteView.
Base template: base_post_login.html
Context variables
current_email_confirmation_requiredboolean that indicates that the change is confirmed through proposed email, but not yet through current email.
proposed_email_confirmation_requiredboolean that indicates that the change is confirmed through current email, but not yet through proposed email.
email_change_request_completedboolean that indicates whether the entire change request is completed.
back_urlLink back to the account management page.
email_change_cancel.html
Rendered by the EmailChangeCancelView if there is a pending email change request.
Base template: base_post_login.html
Form template: accounts/forms/email_change_cancel_form.html
Context variables
current_emailThe current email address.
proposed_emailThe proposed new email address.
cancel_urlLink for the back button.
email_change_cancel_invalid_link.html
Rendered by the EmailChangeCancelView if there is no pending email change request.
Base template: base_invalid_link.html
email_change_cancel_done.html
Rendered by the EmailChangeCancelDoneView.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
accounts/management/email/
Templates for the password and email change emails can be found
in templates/hidp/accounts/management/email.
password_changed_body.txt (and .html)
Sent by the PasswordResetView, SetPasswordView and PasswordChangeView when a user
successfully changes their password.
Context variables
password_reset_urlURL to the password reset page.
password_changed_subject.txt
The subject of the email is set with this template: password_changed_subject.txt.
email_change_body.txt (and .html)
Sent by the EmailChangeRequestView to both old and new email address when a user
requests to change their email address.
Context variables
confirmation_urlURL to
EmailChangeConfirmView.userThe user that requested the email change
recipientString that indicates the recipient of the email. The value is either
'current_email'or'proposed_email'.current_emailThe current email address.
proposed_emailThe proposed new email address.
cancel_urlURL to
EmailChangeCancelView.
email_change_subject.txt
The subject of the email is set with this template: email_change_subject.txt.
email_changed_body.txt (and .html)
Sent by the EmailChangeConfirmView to both old and new email address when a user
changed their email address.
Context variables
current_emailThe current email address.
proposed_emailThe proposed new email address.
email_changed_subject.txt
The subject of the email is set with this template: email_changed_subject.txt.
proposed_email_exists_body.txt (and .html)
Sent by the EmailChangeRequestView to the new email address when a user
requests to change their email address to an email address of an existing account.
Context variables
current_emailThe current email address.
proposed_emailThe proposed new email address.
cancel_urlURL to
EmailChangeCancelView.
proposed_email_change_subject.txt
The subject of the email is set with this template: proposed_email_change_subject.txt.
accounts/recovery
All templates related to password recovery can be found
in templates/hidp/accounts/recovery.
password_reset_request.html
Rendered by the PasswordResetRequestView.
Base template: base_pre_login.html
Form template: accounts/forms/password_reset_request_form.html
Context variables
formThe password reset request form, where users need to fill in their email address.
cancel_urlLink for the cancel button.
password_reset_email_sent.html
Rendered by the PasswordResetEmailSentView.
Base template: base_pre_login.html
password_reset.html
Rendered by the PasswordResetView (a subclass of PasswordResetConfirmView)
when accessed with a valid token.
Base template: base_pre_login.html
Form template: accounts/forms/password_reset_form.html
Context variables
formThe password reset form.
password_reset_invalid_link.html
Rendered by the PasswordResetView when accessed with an invalid token.
Base template: base_invalid_link.html
password_reset_complete.html
Rendered by the PasswordResetCompleteView.
Base template: base_pre_login.html
Context variables
login_urlURL to the login page, with a next param if
redirect_urlis available.
accounts/recovery/email/
Templates related to password recovery emails can be found
in templates/hidp/accounts/recovery/email.
password_reset_body.txt (and .html)
Sent by the PasswordResetRequestView for users that have a password set.
Context variables
password_reset_urlURL to the password reset page.
userThe user the password was changed for
password_reset_subject.txt
The subject of the email is set with this template: password_reset_subject.txt.
set_password_body.txt (and .html)
Sent by the SetPasswordView for users that don’t have a password set.
Context variables
password_reset_urlURL to the password reset page.
set_password_subject.txt
The subject of the email is set with this template: set_password_subject.txt.
accounts/verification
Templates for the verification emails can be found
in templates/hidp/accounts/verification.
email_verification_required.html
Rendered by the EmailVerificationRequiredView when accessed with a valid token.
Base template: base_pre_login.html
email_verification_required_invalid_link.html
Rendered by the EmailVerificationRequiredView when accessed with an invalid token.
Base template: base_invalid_link.html
verify_email.html
Rendered by the EmailVerificationView when accessed with a valid token.
Base template: base_pre_login.html
Form template: accounts/forms/email_verification_form.html
Context variables
formThe email verification form.
verify_email_invalid_link.html
Rendered by the EmailVerificationView when accessed with an invalid token.
Base template: base_invalid_link.html
email_verification_complete.html
Rendered by the EmailVerificationCompleteView.
Base template: base_pre_login.html
Context variables
login_urlURL to the login page, with a next param if
redirect_urlis available.
accounts/verification/email/
Templates for to verification emails can be found email
in templates/hidp/accounts/verification/email.
verification_body.txt (and .html)
Sent by the RegistrationView.
Context variables
verification_urlURL to
EmailVerificationView.
verification_subject.txt
The subject of the email is set with this template: verification_subject.txt.
account_exists_body.txt (and .html)
Sent by the RegistrationView if an account already exists with that email address.
Context variables
password_reset_urlURL to the password reset page.
account_exists_subject.txt
The subject of the email is set with this template: account_exists_subject.txt.
federated/
All templates related to the OIDC authentication and registration can be found
in templates/hidp/federated.
linked_services.html
Rendered by the OIDCLinkedServicesView.
Base template: base_post_login.html
Context variables
oidc_linked_providersList of OIDC Clients that are already linked to the user’s account.
oidc_available_providersList of OIDC Clients that can be linked to the user’s account.
can_unlinkFalseif the user has not set a password and only has one linked provider.set_password_urlURL to the set password page.
back_urlLink for the cancel button.
oidc_error_messageError message from the OIDC Authentication flow in case something went wrong.
Inclusion templates
federated/oidc_provider_list.htmlDisplays
oidc_linked_providers(if available) to allow users to unlink OIDC providers.Displays
oidc_available_providers(if available) to allow users to link OIDC providers.
account_link.html
Rendered by the OIDCAccountLinkView.
Asks the user to confirm that they want to link their account to the OIDC provider.
Base template: base_post_login.html
Form template: federated/forms/account_link_form.html
Context variables
formThe account link form.
cancel_urlLink for the cancel button.
providerThe OIDC provider that the user is linking their account to.
user_emailThe email address of the user that is linking their account.
provider_emailThe email address retrieved from the OIDC provider.
account_link_done.html
Rendered by the OIDCAccountLinkDoneView.
Shows a message letting the user know that their account has been linked.
Base template: base_post_login.html
Context variables
providerThe OIDC provider that the user linked their account to.
back_urlLink back to the linked services page.
account_unlink.html
Rendered by the OIDCAccountUnlinkView.
Asks the user to confirm that they want to unlink their account from the OIDC provider.
Base template: base_post_login.html
Form template: federated/forms/account_unlink_form.html
Context variables
formThe account unlink form.
providerThe OIDC provider that the user is unlinking.
cancel_urlURL for the cancel button.
account_unlink_done.html
Rendered by the OIDCAccountUnlinkDoneView.
Shows a message letting the user know that their account has been unlinked.
Base template: base_post_login.html
Context variables
providerThe OIDC provider that the user unlinked their account from.
back_urlLink back to the linked services page.
registration.html
Rendered by the OIDCRegistrationView.
Base template: base_pre_login.html
Form template: federated/forms/registration_form.html
Context variables
formThe OIDC registration form.
otp/
Templates related to one-time passwords can be found in templates/hidp/otp.
overview.html
Rendered by OTPOverviewView.
Base template: base_post_login.html.
Context variables
totp_devicesQueryset of all configured TOTP devices of the user.
static_devicesQueryset of all configured static devices of the user.
TOTP_DEVICE_NAMEText to use as the label for the TOTP device.
STATIC_DEVICE_NAMEText to use as the label for the static device.
back_urlLink back to the account management page.
setup_device.html
Rendered by the OTPSetupDeviceView.
Base template: base_post_login.html
Context variables
formA form that allows the user to setup an OTP device.
deviceThe unconfirmed TOTP device that is created when visiting the page.
backup_deviceThe unconfirmed static device that is created when visiting the page.
config_urlThe
otpauthurl to confirm the TOTP device.qrcodeQR code of the
config_url.recovery_codesRecovery codes of the unconfirmed static device.
back_urlLink back to the account management page.
setup_device_done.html
Shows a message letting the user know that they have successfully configured two-factor authentication.
Rendered by OTPSetupDeviceDoneView.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
disable.html
Rendered by the OTPDisableView.
Base template: base_post_login.html
Context variables
formA form that allows the user to disable their TOTP device using their one-time password.
userThe current user instance.
back_urlLink back to the account management page.
disable_recovery_code.html
Rendered by the OTPDisableRecoveryCodesView.
Base template: base_post_login.html
Context variables
formA form that allows the user to disable their TOTP device using their recovery codes.
userThe current user instance.
back_urlLink back to the account management page.
recovery_codes.html
Rendered by the OTPRecoveryCodesView.
Allows the user to see and to reset their recovery codes.
Base template: base_post_login.html
Context variables
back_urlLink back to the account management page.
recovery_codesThe recovery codes from the static device of the user.
verify.html
Rendered by the VerifyTOTPView.
Base template: base_pre_login.html
Context variables
formA form used to verify a TOTP token from an authenticator app.
verify_recovery_code.html
Rendered by the VerifyRecoveryCodeView.
Base template: base_pre_login.html
Context variables
formA form used to verify a static token from a list of recovery codes.
otp/email/
Users receive email notifications upon setting up a new TOTP device, disabling an existing one, using recovery codes, or requesting new recovery codes. The templates for these emails are found in templates/hidp/otp/email.
configured_body.txt (and .html)
Sent by OTPSetupDeviceView when a user has set up a new TOTP device.
Context variables
otp_management_urlURL to the account management page.
configured_subject.txt
The subject of the email is set with this template: configured_subject.txt.
disabled_body.txt (and .html)
Sent by OTPDisableView when a user has removed their TOTP device.
Context variables
otp_management_urlURL to the account management page.
disabled_subject.txt
The subject of the email is set with this template: disabled_subject.txt.
recovery_code_used_body.txt (and .html)
Sent by VerifyRecoveryCodeView when a user has used a recovery code.
Context variables
otp_management_urlURL to the account management page.
recovery_codes_countNumber of recovery codes left for the registered static device.
recovery_code_used_subject.txt
The subject of the email is set with this template: recovery_code_used_subject.txt.
recovery_codes_regenerated_body.txt (and .html)
Sent by OTPRecoveryCodesView when a user has generated new recovery codes.
Context variables
otp_management_urlURL to the account management page.
recovery_codes_regenerated_subject.txt
The subject of the email is set with this template: recovery_codes_regenerated_subject.txt.