user_id; return $session; } return null; } private static function currentUserFromRememberToken(string $remember_token) { $session = \UserSession ::with('user') ->where('token', $remember_token) ->first(); if (!$session) { return null; } $session_expiry = $session->expire_at; $now = new DateTime(); /* Session is expired (diff is negative) */ if ($now->diff($session_expiry)->invert === 1) { $session->delete(); return null; } return $session->user; } private static function currentUserFromPhpSession() { if (empty($_SESSION['user_id'])) { return null; } return \User::find(intval($_SESSION['user_id'])); } public static function destroySession(DatabaseHandle $conn, string $token) { $conn->query('DELETE FROM user_sessions WHERE user_id = ? AND token = ?', [$this->user_id, $token]); } }