Reset hesla nefunguje — špatný klient a fake SMTP
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Reset hesla nefunguje — uživatelé si nemůžou obnovit heslo, e-mail nedorazí nebo odkaz končí na 404.
Root cause
Sekce “Root cause”Tři bugy současně: (1) kód volal neexistující serverový klient v daném kontextu, (2) redirect mířil na 404 URL, (3) flow spoléhal na vestavěné SMTP providera, které bylo nakonfigurované jako fake (nikdy reálně neodesílalo).
Fix
Sekce “Fix”Generovat recovery odkaz administrátorským API → hashed token → vlastní callback URL → odeslat přes vlastní ověřené SMTP.
const { data } = await admin.auth.admin.generateLink({ type: 'recovery', email });await sendMail({ to: email, subject: 'Obnova hesla', link: data.properties.action_link });Jak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: existuje E2E test, který reálně přijme reset e-mail a dokončí změnu hesla?
- Anti-pattern: spoléhání na default e-mail providera bez ověření doručení; callback URL bez existující stránky.
- Lepší přístup: vlastní ověřené SMTP + E2E test celého flow přes reálnou schránku.