La semaine où absolument tout allait dans le mur
Il y a des semaines où tu te sens quasi-génie du code. Tout s’aligne, les features coulent, tu bois ton café encore chaud. Cette semaine-là… non.
C’était plutôt la version où ton café devient froid parce que tu fixes le même message d’erreur depuis trois quarts d’heure en te demandant pourquoi le bouton « Se déconnecter » affiche bien « au revoir »… mais laisse l’utilisateur se balader tranquillement dans les pages privées.
Le paillasson « Bienvenue » devant le coffre-fort, version logiciel.
Moi le 1er mars à 9h du mat’ : « L’authentification c’est fastoche : tu protèges tes routes, tu vérifies un token, et roulez jeunesse. »
Euh : j’étais mignonne.
Immers’Write, pour situer : une plateforme où des auteurs écrivent des histoires avec des images IA, et les lecteurs les vivent presque comme un film interactif. Très joli sur le papier. Très vide sur le serveur en mars 2026.
Objectif du sprint 1 : le minimum syndical de la vie d’un utilisateur. Compte, login, logout, pages privées protégées. Les fondations, quoi. Pas de marbre, juste du béton qui tient debout.
J’avais tablé sur deux semaines. J’en ai mis… davantage. Mais j’ai gagné des points de vie et un vocabulaire de dev que je maîtrise à peine.
Les grands moments de solitude :
Le mot de passe haché
Premier test : TU-AUTH-01.
Stocker le mot de passe en clair ?
Autant coller son code secret sur le frigo.
Donc on passe ça dans bcrypt → ça devient une chaîne imbitable genre $2b$12$trucdeouf…
Test vert.
Soulagement niveau 1/10 (parce que c’était le plus facile).Le compte non confirmé - Mon bug le plus énervant (et le plus bête)
Je m’inscris. Ma page de confirmation me dit d’aller voir mes mails. Je clique sur le lien de confirmation dans l’email → je suis redirigée vers ma page Login…Je me logge… sauf que non. “Compte non confirmé” WHAAAT?? je viens de cliquer sur le lien d’actoivation ! que faut il faire de plus pour que tu me laisses entrer dans l’app !
”is_confirmed” restait désespérément false en base de données.J’ai suspecté le JWT, la signature, l’expiration, le format des points dans l’URL, j’ai réécrit la route trois fois.
Et puis j’ai ouvert middleware.ts.
const PUBLIC_PATHS = [
"/login",
"/register",
"/register/confirmation",
"/forgot-password",
"/reset-password",
"/confirm", ← oups
];
Ce qui se passait :
Sans cette ligne, la page /confirm était considérée privée → middleware redirige vers login → token jamais envoyé au backend → compte jamais confirmé.
Fix (coorection): ajouter la ligne. Déployer. Recliquer le lien. Regarder “true” apparaître en base à la place de “false”. Soulagement ridicule pour un booléen.
J’ai failli lui faire un câlin.
La déconnexion, ce concept philosophique
Les JWT s’en battent les steaks de ce que tu décides après les avoir créés. Tu peux hurler « T’ES MORT » → il continuera à marcher jusqu’à expiration.
Solution MVP : à la déconnexion, on supprime le cookie côté navigateur.
Pas de cookie → middleware Next.js dit non aux pages privées.
C’est moche ? Oui. Ça marche ? Oui. Case cochée.
J’ai fini par lister mes 12 tests, les documenter proprement (merci Confluence), fermer des tickets Jira comme une grande. Et en bonus, j’ai automatisé le déploiement :
je pousse sur GitHub → GitHub Actions build l’image Docker → le VPS la récupère → Nginx reload → bim, en ligne.
Une journée entière + 10 cafés refroidis. Mais maintenant c’est réglé. Plus jamais.
Bilan de la semaine : J’ai appris qu’une route oubliée peut te pourrir la vie, que les JWT sont des petits crétins arrogants, et que je sais maintenant faire un pipeline CI/CD sans pleurer (trop).
Il y a six mois je ne savais même pas ce qu’était un token. Aujourd’hui je code ET j’écris des histoires. Et bizarrement, les deux métiers consistent à faire tenir des trucs ensemble sans que ça s’effondre.
Les bugs, c’est pas des échecs. C’est juste du contenu pour les posts de blog un peu plus tard.
Laure (mars 2026, toujours en vie, toujours sur Immers’Write)
#ImmersWrite #présentation #projet #lecture #immersive #écriture #IA #application #storytelling #IAgénérative #plateformecréative #formationIA #buildinpublic #indiemaker


Commentaires
Enregistrer un commentaire