xtablo-source/backend/internal/auth
Arthur Belleville 7d8c498980
feat(02-05): login vertical slice with rate limiting
- auth_login.templ: LoginPage + LoginFormFragment (mirrors signup shape)
- LoginForm + LoginErrors types added to templates/auth_forms.go
- LoginPageHandler + LoginPostHandler in handlers_auth.go
  - Rate-limit check before user lookup (D-16, T-2-14)
  - Single errInvalidCreds constant for D-20 enumeration defense
  - Session rotation via Store.Rotate on success (D-10, T-2-04)
  - HTMX-aware redirect and fragment responses (D-19, D-21)
- AuthDeps extended with Limiter *auth.LimiterStore field
- router.go: GET /login in RedirectIfAuthed group (D-23)
- main.go: LimiterStore created with janitor goroutine (D-16)
- Export NewLimiterStoreWithClock + SetLimiterClock for cross-package tests
- 12 TestLogin_* integration tests all pass with real DB
2026-05-14 22:27:54 +02:00
..
cookie.go feat(02-03): session store + cookie helpers (real-DB TDD) 2026-05-14 22:08:04 +02:00
doc.go feat(02-01): create internal/auth package skeleton, test DB harness, env docs 2026-05-14 21:56:45 +02:00
middleware.go feat(02-04): signup handler, router wiring, and integration tests 2026-05-14 22:17:50 +02:00
middleware_test.go feat(02-03): ResolveSession + RequireAuth + RedirectIfAuthed middleware 2026-05-14 22:09:58 +02:00
password.go feat(02): GREEN — argon2id Hash + Verify + self-test 2026-05-14 22:00:55 +02:00
password_test.go test(02): RED — failing argon2id password tests 2026-05-14 21:59:38 +02:00
ratelimit.go feat(02-05): login vertical slice with rate limiting 2026-05-14 22:27:54 +02:00
ratelimit_test.go feat(02-05): implement LimiterStore with injectable clock and janitor 2026-05-14 22:22:24 +02:00
session.go feat(02-03): session store + cookie helpers (real-DB TDD) 2026-05-14 22:08:04 +02:00
session_test.go feat(02-03): session store + cookie helpers (real-DB TDD) 2026-05-14 22:08:04 +02:00
testdb_test.go feat(02-01): create internal/auth package skeleton, test DB harness, env docs 2026-05-14 21:56:45 +02:00
types.go feat(02-01): create internal/auth package skeleton, test DB harness, env docs 2026-05-14 21:56:45 +02:00