Ajoute une page utilisateur et une persistance MySQL
This commit is contained in:
11
README.md
11
README.md
@@ -23,11 +23,11 @@ Le coeur de l'application se trouve dans `ChessCubing.App/`.
|
||||
- `ChessCubing.App/Services/MatchEngine.cs` : logique metier des matchs
|
||||
- `ChessCubing.App/Services/MatchStore.cs` : persistance navigateur
|
||||
- `ChessCubing.App/Services/AppAuthenticationStateProvider.cs` : session locale cote client
|
||||
- `ChessCubing.Server/` : backend d'authentification qui parle a Keycloak
|
||||
- `ChessCubing.Server/` : backend d'authentification Keycloak et API utilisateur reliee a MySQL
|
||||
- `ChessCubing.App/wwwroot/` : assets statiques, manifeste, PDFs, appli Ethan
|
||||
- `keycloak/realm/chesscubing-realm.json` : realm importable avec client Keycloak et roles
|
||||
- `keycloak/scripts/init-config.sh` : synchronisation automatique du client Keycloak au demarrage
|
||||
- `docker-compose.yml` + `Dockerfile` + `Dockerfile.auth` : front Blazor, API d'auth et stack Keycloak/Postgres
|
||||
- `docker-compose.yml` + `Dockerfile` + `Dockerfile.auth` : front Blazor, API d'auth, Keycloak/Postgres et MySQL pour les donnees du site
|
||||
|
||||
Le projet continue a exposer les routes historiques `index.html`, `application.html`, `chrono.html`, `cube.html` et `reglement.html`.
|
||||
|
||||
@@ -42,6 +42,7 @@ L'application embarque maintenant une authentification integree basee sur Keyclo
|
||||
- une session cookie locale est ensuite exposee au front via `/api/auth/session`
|
||||
- les roles Keycloak du realm restent exposes dans l'application
|
||||
- l'etat du match est isole par utilisateur dans le navigateur grace a une cle de stockage derivee du compte connecte
|
||||
- une page `utilisateur` permet maintenant d'editer un profil du site persiste en base MySQL via `/api/users/me`
|
||||
|
||||
Le realm importe par defaut :
|
||||
|
||||
@@ -66,6 +67,7 @@ L'application est ensuite disponible sur `http://localhost:8080`.
|
||||
|
||||
La console Keycloak est servie via le meme nginx sur `http://localhost:8080/auth/admin/`.
|
||||
L'API d'authentification integree est servie derriere le meme point d'entree via `/api/auth/*`.
|
||||
L'API utilisateur et sa persistance MySQL sont egalement servies via `/api/users/*`.
|
||||
|
||||
Identifiants d'administration par defaut pour le premier demarrage local :
|
||||
|
||||
@@ -73,6 +75,7 @@ Identifiants d'administration par defaut pour le premier demarrage local :
|
||||
- mot de passe : `admin`
|
||||
|
||||
Ces valeurs peuvent etre surchargees via les variables d'environnement de `.env.example`.
|
||||
La base MySQL du site utilise les variables `SITE_DB_*` du meme fichier.
|
||||
|
||||
Au demarrage, le service `keycloak-init` resynchronise automatiquement le realm courant pour garder l'inscription active et autoriser le flux de connexion integre, meme si la base Keycloak existe deja.
|
||||
|
||||
@@ -134,13 +137,15 @@ bash -c "$(curl -fsSL https://git.jeannerot.fr/christophe/chesscubing/raw/branch
|
||||
## Fichiers cles
|
||||
|
||||
- `ChessCubing.App/Pages/Home.razor` : page d'accueil du site
|
||||
- `ChessCubing.App/Pages/UserPage.razor` : page utilisateur connectee a MySQL
|
||||
- `ChessCubing.App/Pages/ApplicationPage.razor` : configuration et reprise de match
|
||||
- `ChessCubing.App/Pages/ChronoPage.razor` : phase chrono
|
||||
- `ChessCubing.App/Pages/CubePage.razor` : phase cube
|
||||
- `ChessCubing.App/Pages/RulesPage.razor` : synthese du reglement
|
||||
- `ChessCubing.App/Services/MatchEngine.cs` : regles de jeu et transitions
|
||||
- `ChessCubing.App/Services/AppAuthenticationStateProvider.cs` : etat de session cote client
|
||||
- `ChessCubing.Server/Program.cs` : endpoints `/api/auth/*`
|
||||
- `ChessCubing.Server/Program.cs` : endpoints `/api/auth/*` et `/api/users/*`
|
||||
- `ChessCubing.Server/Users/MySqlUserProfileStore.cs` : creation de table et persistance du profil utilisateur
|
||||
- `keycloak/realm/chesscubing-realm.json` : realm, roles et client Keycloak importes
|
||||
- `keycloak/scripts/init-config.sh` : mise en conformite du client Keycloak au demarrage
|
||||
- `docker-compose.yml` + `Dockerfile` + `Dockerfile.auth` : execution locale
|
||||
|
||||
Reference in New Issue
Block a user