Inscription sur invitation uniquement
Ferme l'auto-inscription publique : l'app repose désormais sur le
mécanisme d'invitation natif de Supabase (Authentication → Users →
Invite user) plutôt que sur un formulaire /signup ouvert à tous.
- /login : retire le lien « Créer un compte ».
- /signup : entièrement repensée. Ce n'est plus un formulaire d'auto-
inscription (email + mot de passe) mais une page de FINALISATION de
compte invité. Au montage, vérifie s'il existe une session (établie
par le clic sur le lien d'invitation reçu par email) :
* pas de session → message « invitation requise » ;
* session + profil déjà finalisé (pseudo réel, pas le défaut
"Nouveau membre" posé par le trigger handle_new_user) → redirige
directement vers le leaderboard ;
* session + profil à finaliser → formulaire pseudo + mot de passe
+ photo, qui appelle `updateUser({ password })` puis met à jour
`profiles` (au lieu de `signUp()`).
- proxy : /signup retiré de AUTH_PATHS — un compte fraîchement invité a
déjà une session active et doit pouvoir rester sur cette page pour la
finaliser, sans être renvoyé au leaderboard par le redirect prévu pour
les utilisateurs déjà connectés.
- README/CLAUDE.md : documentent la désactivation de "Allow new users
to sign up", la configuration Site URL/Redirect URLs (→ /signup) pour
que le lien d'invitation atterrisse au bon endroit, et le flux
d'invitation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -76,7 +76,7 @@ Ce pattern (RLS pour l'accès à la ligne + trigger `BEFORE UPDATE` pour l'accè
|
||||
|
||||
## 4. Authentification
|
||||
|
||||
Email + mot de passe (Supabase Auth impose l'unicité de l'email). Confirmation d'email **activée** — nécessite un SMTP custom configuré côté Supabase (le service intégré est trop limité en volume, voir README). Le pseudo est un simple nom d'affichage stocké dans `profiles`, jamais l'email n'est montré aux autres membres.
|
||||
**Sur invitation uniquement**, plus d'auto-inscription publique : "Allow new users to sign up" est désactivé côté Supabase. Un Archonte invite via Authentication → Users → Invite user ; le lien reçu établit une session directement sur `/signup`, qui sert alors à finaliser le compte (mot de passe, pseudo, photo) — sans session valide, la page affiche un message « invitation requise ». Le profil est créé dès l'invitation par le trigger `handle_new_user` (pseudo temporaire `"Nouveau membre"` jusqu'à finalisation). Nécessite un SMTP custom côté Supabase (le service intégré est trop limité en volume, voir README). Le pseudo est un simple nom d'affichage stocké dans `profiles`, jamais l'email n'est montré aux autres membres.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user