Repository source: docs/plans/archive/session_reauthentication_step1_solution_assessment.md
Session Reauthentication: Step 1 Solution Assessment
Problem statement
An expired PHP session sends approved members to Lobby or a non-recovering access page and loses the URL they intended to visit.
Option A — Extend and configure PHP sessions
Pros:
Smallest change and fastest mitigation.
Reduces avoidable expiry caused by inherited defaults.
Cons:
Does not restore the original destination or address cold-navigation UX alone.
Retains dependence on PHP/file-session cleanup behavior.
Option B — Resume flow on top of PHP sessions
Pros:
Preserves a validated original destination.
Silently restores a session for safe HTML GETs; no Lobby flash or reload.
Supports an in-page navigation guard for truly background recovery.
Limits scope while retaining the current authentication proof.
Cons:
Cold navigations still require a brief resume document before protected content can load.
Does not give the application full control of session retention.
Option C — Application-owned opaque authentication sessions
Pros:
Explicit idle/absolute expiry, rotation, revocation, and cleanup policy.
Removes authentication dependence on PHP's file-session lifecycle.
Cons:
Larger security-sensitive change with persistence and migration work.
Does not by itself fix destination recovery; it still benefits from Option B.
Recommendation
Choose Option B first, with explicit PHP retention settings from Option A. It resolves the user-visible failure safely and establishes the recovery contract. Reassess Option C after the intended expiration policy and recovery telemetry are available; do not adopt a stateless client credential.