fix(auth): magic link points at /verify.html SPA, not /auth/verify JSON #46

Merged
libretech merged 1 commits from fix/magic-link-points-to-spa into main 2026-04-29 17:13:35 +02:00
Showing only changes of commit c5f92d6daa - Show all commits
+6 -1
View File
@@ -99,7 +99,12 @@ func (s *Service) RequestLogin(ctx context.Context, email string) error {
if err != nil {
return err
}
link := s.baseURL + "/auth/verify?token=" + url.QueryEscape(plaintext)
// The magic link must land on the SPA page (verify.html), not the
// JSON API endpoint /auth/verify. The page reads the token from
// the URL, POSTs it to /auth/verify, stores the JWT and redirects
// to /app.html. Pointing the email at /auth/verify exposes the
// raw JSON body to anyone who clicks the link.
link := s.baseURL + "/verify.html?token=" + url.QueryEscape(plaintext)
if err := s.mailer.SendMagicLink(ctx, email, link); err != nil {
return fmt.Errorf("send mail: %w", err)
}