{# _auth_main_login.html — login form column. Renders standalone for HTMX fragment responses. Expected context: csrf_token, identifier, error, next, client_id, app_name, oauth_providers, is_production #} {% import "_partials/_auth_macros.html" as auth %} {%- if signup_url -%} {%- set register_href = signup_url -%} {%- elif client_id -%} {%- set register_href = "/register?client_id=" ~ client_id -%} {%- else -%} {%- set register_href = "/register" -%} {%- endif -%} {{ auth.kicker(app_name, "Sign in", swap_href=register_href, swap_label="Create account", swap_prefix="New here?") }} Sign in Welcome back. {{ auth.tabs(active="signin", signup_href=register_href) }} {% if error %} {% set flash = { "kind": "err", "message": error } %} {% include "_partials/_flash.html" %} {% endif %} {% if next %}{% endif %} {% if client_id %}{% endif %} Email or username Password Forgot? Sign in → {{ auth.oauth_grid(oauth_providers, next=next) }} {{ auth.terms_footer(terms_url=terms_url, privacy_url=privacy_url) }}
Welcome back.