diff --git a/client/src/App.tsx b/client/src/App.tsx index 2dcde33..f3871a2 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -5,6 +5,7 @@ import { Route, Switch } from "wouter"; import ErrorBoundary from "./components/ErrorBoundary"; import { ThemeProvider } from "./contexts/ThemeContext"; import Home from "./pages/Home"; +import LoginChoice from "./pages/LoginChoice"; import AdminRapportPublicCible from "./pages/AdminRapportPublicCible"; import Admin from "./pages/Admin"; import AdminFormations from "./pages/AdminFormations"; @@ -23,7 +24,8 @@ import Login from "./pages/Login"; function Router() { return ( - + + diff --git a/client/src/pages/LoginChoice.tsx b/client/src/pages/LoginChoice.tsx new file mode 100644 index 0000000..d4948c4 --- /dev/null +++ b/client/src/pages/LoginChoice.tsx @@ -0,0 +1,92 @@ +import { useLocation } from "wouter"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { APP_LOGO, APP_TITLE, getLoginUrl } from "@/const"; +import { KeyRound, Shield } from "lucide-react"; + +export default function LoginChoice() { + const [, setLocation] = useLocation(); + + const handleManusLogin = () => { + window.location.href = getLoginUrl(); + }; + + const handleLocalLogin = () => { + setLocation("/login"); + }; + + return ( +
+ + +
+ Logo +
+
+ {APP_TITLE} + + Choisissez votre méthode de connexion + +
+
+ +
+ {/* Connexion Manus OAuth */} + + +
+
+ +
+
+ Connexion Manus + + Utilisez votre compte Manus (Google, Microsoft, Apple) + +
+ + + +
+ + {/* Connexion Locale */} + + +
+
+ +
+
+ Connexion Locale + + Utilisez votre identifiant et mot de passe + +
+ + + +
+
+ +
+

Vous n'avez pas de compte ?

+

Contactez l'administrateur

+
+
+
+
+ ); +} diff --git a/todo.md b/todo.md index 0ce685e..2ab87b4 100644 --- a/todo.md +++ b/todo.md @@ -424,3 +424,21 @@ - [x] Identifier pourquoi /login redirige vers OAuth au lieu d'afficher le formulaire local - [x] Corriger la page Login.tsx pour empêcher la redirection automatique - [x] Tester que /login affiche bien le formulaire username/password + +## Désactiver la redirection OAuth pour /login + +- [ ] Identifier le middleware qui force la redirection vers OAuth +- [ ] Exclure la route /login de la redirection automatique +- [ ] Tester que /login affiche bien le formulaire local même après publication + +## Créer une page de choix de connexion + +- [ ] Créer une page LoginChoice avec boutons "Connexion Manus" et "Connexion locale" +- [ ] Modifier les routes pour afficher cette page en premier +- [ ] Tester le choix et les redirections + +## Créer une page de choix de connexion + +- [x] Créer une page LoginChoice avec boutons "Connexion Manus" et "Connexion locale" +- [x] Modifier les routes pour afficher cette page en premier +- [x] Tester le choix et les redirections