Session: immutable holder of token, owning User, createdAt, expiresAt. isExpired(now) compares >= expiresAt. SessionModel keys on token (string primary, non-incrementing). migration adds sessions table with foreign user_id (cascade on user delete) and indexed expires_at for cleanup queries. EloquentSessionRepository takes UserRepository to rehydrate the owning User on findByToken; sessions for deleted users return null. FakeSessionRepository mirrors with an in-memory map keyed by token, defensive copies on read.
12 lines
236 B
PHP
12 lines
236 B
PHP
<?php
|
|
|
|
namespace App\Auth;
|
|
|
|
interface SessionRepository
|
|
{
|
|
public function create(CreateSessionDto $dto): Session;
|
|
|
|
public function findByToken(string $token): ?Session;
|
|
|
|
public function deleteByToken(string $token): void;
|
|
}
|