# Portail d'Authentification Web

*   **Version :** 1.1
*   **Dépôt Git :** `https://github.com/YoannOCR/auth-portal.git`
*   **Date de mise à jour :** 1er novembre 2025

## Description

Ce projet est un module d'authentification sécurisé et centralisé, conçu pour servir de portail d'accès unique à un ensemble d'applications web. L'interface est développée avec une esthétique **[translate:glassmorphisme]** et une navigation latérale pour une expérience utilisateur moderne.

Le système inclut une gestion avancée des droits basée sur les rôles (**RBAC**), permettant un contrôle fin des accès pour chaque utilisateur.

## Architecture Technique

*   **Frontend :** HTML, CSS, JavaScript (potentiellement React.js).
*   **Backend :** API RESTful développée en PHP.
*   **Base de Données :** MySQL v8.0, hébergée chez OVH.
*   **Hébergement :** OVH, en configuration multisite.

## Fonctionnalités

*   Inscription avec validation par email.
*   Connexion sécurisée et Authentification à deux facteurs (2FA).
*   Procédure de mot de passe oublié.
*   Gestion de profil utilisateur.
*   Système de droits basé sur les rôles (Admin, Utilisateur, etc.).
*   Panneau d'administration pour la gestion des utilisateurs.

## Prérequis Techniques

*   **PHP :** Version 8.1 ou supérieure (la version 8.4 d'OVH est parfaite).
*   **Base de données :** MySQL v8.0.
*   **Dépendances PHP :** Composer.
*   **Développement Frontend (optionnel) :** Node.js et npm.

## Installation et Déploiement

### 1. Cloner le Dépôt

```
git clone https://github.com/YoannOCR/auth-portal.git
cd auth-portal
```

### 2. Dépendances Backend
Installez les dépendances PHP avec Composer.

```
composer install
```

### 3. Dépendances Frontend (si applicable)
Si le projet utilise un framework comme React, installez les dépendances.

```
npm install
```

### 4. Configuration de l'Environnement
Ce projet utilise un fichier `.env` pour gérer les secrets.
1.  Copiez le fichier d'exemple : `cp .env.example .env`
2.  Modifiez le fichier `.env` pour y renseigner vos informations de connexion et d'envoi d'e-mails (voir ci-dessous).

### 5. Configuration de la Base de Données
1.  Assurez-vous que votre base de données `labiaul969` est accessible via l'hôte `labiaul969.mysql.db`.
2.  Importez le schéma SQL qui se trouve dans le dossier `/database/schema.sql` pour créer les tables `auth_*`.
3.  (Recommandé) Exécutez le script d'initialisation (`/database/seed.sql`) pour créer le premier utilisateur `admin`.

## Configuration de Production (OVH)

*   **Domaine :** Le projet est configuré pour répondre aux URLs `https://www.famille.labiau.fr` et `https://famille.labiau.fr`.
*   **SSL/TLS :** Le certificat est géré automatiquement par **Let's Encrypt** via l'interface OVH. Il est impératif de forcer la redirection de tout le trafic HTTP vers HTTPS.
*   **Pointage de Domaine :** Le domaine doit pointer vers le dossier racine public de votre projet (ex: `/public` si vous utilisez un framework avec un *front controller*).

## Configuration de l'Envoi d'E-mails (SMTP)

Pour envoyer les e-mails de vérification et de réinitialisation de mot de passe, vous devez configurer un service SMTP. La solution la plus simple est d'utiliser les serveurs SMTP de votre hébergement OVH avec une adresse dédiée (ex: `no-reply@labiau.fr`).

Ajoutez les variables suivantes à votre fichier `.env` :


```
Configuration SMTP pour l'envoi d'e-mails
MAIL_HOST=ssl0.ovh.net
MAIL_PORT=587
MAIL_USERNAME=no-reply@labiau.fr
MAIL_PASSWORD="votre-mot-de-passe-email"
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="no-reply@labiau.fr"
MAIL_FROM_NAME="Portail Famille Labiau"
```

Votre code PHP (par exemple, en utilisant une bibliothèque comme **PHPMailer**) devra utiliser ces variables pour se connecter au serveur SMTP et envoyer les e-mails.

---

