{% extends "pages/base.html" %} {% load i18n %} {% block title %}{% trans "Authenticator setup" %}{% endblock %} {% block content %}

{% trans "Authenticator app enrollment" %}

{% trans "Use an authenticator app to generate one-time codes for logging in." %}

{% if confirmed_device %} {% else %} {% endif %}
{% csrf_token %}
{% if pending_device %}

{% trans "Scan and confirm" %}

{% if qr_data_uri %}
{% trans 'Authenticator QR code' %}
{% endif %} {% if manual_key %}

{% blocktrans trimmed %}If you cannot scan the QR code, enter this key in your authenticator app:{% endblocktrans %}

{{ manual_key }}

{% endif %}

{% trans "After scanning, enter a code from your app to confirm enrollment." %}

{% csrf_token %}
{% if enrollment_form.non_field_errors %} {% endif %} {% for error in enrollment_form.token.errors %}
{{ error }}
{% endfor %}
{% endif %} {% if confirmed_device %}
{% csrf_token %}
{% endif %}

{% trans "Password-based logins remain available even when an authenticator app is enabled." %}


{% trans "Passkeys" %}

{% trans "Register passkeys to sign in without entering a password." %}

{% if passkeys %}
    {% for passkey in passkeys %}
  • {{ passkey.name }}
    {% blocktrans with created=passkey.created_at|date:"M j, Y" %}Added {{ created }}{% endblocktrans %}
    {% csrf_token %}
  • {% endfor %}
{% else %}
{% trans "No passkeys are registered yet." %}
{% endif %}
{% trans "Choose a short name so you recognise this device later." %}
{% endblock %}