# Comptes utilisateurs gratuits

Cette mise à jour ajoute un compte facultatif sans modifier la publication sans compte.

## Fonctions incluses

- création de compte gratuite ;
- connexion et déconnexion ;
- confirmation de l’adresse e-mail ;
- mot de passe oublié avec lien valable une heure ;
- espace « Mes événements » ;
- rattachement automatique des événements existants après confirmation de l’adresse ;
- rattachement immédiat des nouvelles publications lorsque l’utilisateur connecté utilise l’adresse confirmée de son compte ;
- accès direct à la page publique et au lien privé de modification.

## Installation sur une base existante

1. Sauvegarder la base et les fichiers.
2. Importer une seule fois `migrations/2026-07-25-user-accounts.sql`.
3. Envoyer les nouveaux fichiers sur l’hébergement en conservant `config/config.php` existant.
4. Vérifier que l’envoi d’e-mails est actif dans la configuration.
5. Ouvrir `/compte`, créer un compte de test et confirmer l’adresse.

Le script de migration est destiné à une base ne possédant pas encore les tables `users`, `user_tokens` ni la colonne `events.user_id`. Il ne doit pas être rejoué après une installation réussie.

## Sécurité

- mots de passe stockés avec `password_hash()` ;
- jetons de confirmation et de réinitialisation stockés uniquement sous forme de hash SHA-256 ;
- formulaires protégés par jeton CSRF ;
- cookies de session `HttpOnly`, `SameSite=Lax` et `Secure` sous HTTPS ;
- limitation des tentatives par IP ;
- aucun événement existant n’est rattaché avant confirmation de l’adresse e-mail.
