Checkpoint: Ajout de la fonctionnalité complète de réinitialisation de mot de passe avec génération de tokens temporaires (24h), stockage en base de données, et envoi d'emails automatiques. Nouveau bouton dans la page de gestion des utilisateurs avec dialogue de confirmation.

This commit is contained in:
Manus Sandbox
2025-11-17 16:21:11 -05:00
parent c9f6f8f068
commit 155c4592e1
10 changed files with 832 additions and 1 deletions

View File

@@ -122,3 +122,22 @@ export const inscriptions = mysqlTable("inscriptions", {
export type Inscription = typeof inscriptions.$inferSelect;
export type InsertInscription = typeof inscriptions.$inferInsert;
/**
* Table des tokens de réinitialisation de mot de passe
* Stocke les tokens temporaires générés pour la réinitialisation
*/
export const passwordResetTokens = mysqlTable("passwordResetTokens", {
id: int("id").autoincrement().primaryKey(),
userId: int("userId").notNull(),
/** Token unique généré pour la réinitialisation */
token: varchar("token", { length: 255 }).notNull().unique(),
/** Date d'expiration du token (24h après génération) */
expiresAt: timestamp("expiresAt").notNull(),
/** Indique si le token a été utilisé */
used: boolean("used").default(false).notNull(),
createdAt: timestamp("createdAt").defaultNow().notNull(),
});
export type PasswordResetToken = typeof passwordResetTokens.$inferSelect;
export type InsertPasswordResetToken = typeof passwordResetTokens.$inferInsert;