- styles/forge-custom.scss : .content-wide (déjà utilisée par game_dashboard.html/index.html) passe de 1080px à 1600px, pleine largeur pour les écrans de gestion (§5) — la largeur du bloc <main> par défaut (760px, hérité par les pages d'auth/profil qui ne posent pas cette classe) reste inchangée, ces pages veulent justement rester étroites et centrées. - Pages d'authentification (login/register/2FA×2/mot de passe oublié/ réinitialisation) : le style="max-width:NNNpx" répété sur chacune est remplacé par les classes partagées .authScreen/.authCard(-wide), titre H1 en dégradé signature .forge-gradient-title — seul endroit du site, avec le logo, autorisé à l'utiliser (§3/§5). Grille de fond fine sur body.authBody, elle aussi réservée aux zones hero et absente des écrans de travail. - Logique JS inchangée (jauge de mot de passe dans register.html/ reset_password.html) — uniquement des classes/structure autour. 197 tests toujours verts, JS des pages modifiées revérifié (node --check). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
29 lines
1.3 KiB
HTML
29 lines
1.3 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Activer la double authentification — Forge Engine{% endblock %}
|
|
{% block body_class %}authBody{% endblock %}
|
|
{% block content %}
|
|
<section class="section authScreen">
|
|
<div class="container authCard authCard-wide">
|
|
<h1 class="title authTitle forge-gradient-title">Active la double authentification</h1>
|
|
<p class="hint mb-4">Scanne ce QR code avec une application d'authentification (Google Authenticator, Authy...), puis tape le code à 6 chiffres qu'elle affiche pour confirmer.</p>
|
|
|
|
{% if error %}
|
|
<div class="notification is-danger">{{ error }}</div>
|
|
{% endif %}
|
|
|
|
<div class="totpQrWrap">{{ qr_svg|safe }}</div>
|
|
<p class="hint">Impossible de scanner ? Saisis cette clé manuellement dans l'application : <code>{{ secret }}</code></p>
|
|
|
|
<form method="post" action="{{ url_for('register_2fa') }}" class="mt-4">
|
|
<div class="field">
|
|
<label class="label">Code à 6 chiffres</label>
|
|
<div class="control"><input class="input" type="text" name="code" inputmode="numeric" pattern="[0-9]*" maxlength="6" autocomplete="one-time-code" required autofocus></div>
|
|
</div>
|
|
<div class="field">
|
|
<button type="submit" class="button primary is-fullwidth">Confirmer et activer mon compte</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|