xtablo-source/backend/internal/auth
Arthur Belleville 1d07830954
feat(02-03): ResolveSession + RequireAuth + RedirectIfAuthed middleware
- ResolveSession: reads cookie, SHA-256 lookup, MaybeExtend best-effort, attaches Session+User to ctx
- RequireAuth: 303 /login for plain requests; HX-Redirect: /login for HTMX (D-23, Pattern 5)
- RedirectIfAuthed: bounces authed users to / from login/signup pages
- Authed(ctx): typed context accessor for session + user
- redirect helper centralizes 303 vs HX-Redirect logic (Pitfall 9: no 302)
- 9 tests: 3 real-DB (ResolveSession) + 6 pure ctx/routing (RequireAuth, RedirectIfAuthed)
2026-05-14 22:09:58 +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-03): ResolveSession + RequireAuth + RedirectIfAuthed middleware 2026-05-14 22:09:58 +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
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