Commit graph

13 commits

Author SHA1 Message Date
e54197f8a5
implement auth controller
Green phase: AuthController handles login (authenticate + create session + set cookie), logout (delete session + clear cookie), and me (return user from request attribute).
2026-05-17 09:45:25 +03:00
21dca993cd
test: add failing auth controller test
Red phase: AuthControllerTest covers login with valid credentials (returns user+cookie), missing email (400), invalid credentials (401), logout (clears cookie, 204), and me (returns user from attribute).
2026-05-17 09:45:25 +03:00
b581e80413
implement auth middleware
Green phase: PSR-15 AuthMiddleware checks auth_token cookie, looks up session, validates expiry, sets user attribute on request or returns 401.
2026-05-17 09:45:25 +03:00
db01bfdc2e
test: add failing auth middleware test
Red phase: AuthMiddlewareTest covers valid cookie, missing cookie, empty cookie, unknown token, expired session, and expired session deletion.
2026-05-17 09:45:24 +03:00
58772d66c1
implement logout use case
Green phase: Logout calls deleteByToken on SessionRepository. No-op for non-existent tokens.
2026-05-17 09:45:24 +03:00
ceb392fc8d
test: add failing logout test
Red phase: LogoutTest covers deleting existing session and no-op for unknown token.
2026-05-17 09:45:24 +03:00
d490260807
implement create session use case
Green phase: CreateSession generates a token, creates a session with 7-day expiry, and persists it via SessionRepository.
2026-05-17 09:45:23 +03:00
a78d429f0b
test: add failing create session test
Red phase: CreateSessionTest covers token, user, createdAt, 7-day expiry, persistence, and fresh instance.
2026-05-17 09:45:23 +03:00
b14cd565bb
implement authenticate user use case
Green phase: AuthenticateUser validates credentials, throws BadRequestException for empty fields, UnauthorizedException for unknown email or wrong password.
2026-05-17 09:45:23 +03:00
57c75f64c4
test: add failing authenticate user test
Red phase: write AuthenticateUserTest with cases for valid credentials, empty email/password (null and empty string), unknown email, wrong password, and fresh instance guarantee. Fakes included.
2026-05-17 09:45:22 +03:00
77057a9e95
change src to app and add dev autoload 2026-05-15 12:32:06 +03:00
ff51dbadc6
install slim, psr7, slim di 2026-05-15 12:31:47 +03:00
6d9103e035
composer init 2026-05-14 19:53:20 +03:00