mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-14 21:26:15 -08:00
feat(stalker): protocol-correct auth lifecycle
Portals that answer get_profile with status 2 ("login/password required")
never authenticated: the status was treated as success and the do_auth path
had no callers. Parse js.status (numeric or stringified), run do_auth with the
credentials the import dialog now collects, and retry get_profile with
auth_second_step=1.
- Surface the portal's own msg/block_msg (markup-stripped) in the import
dialog and the workspace category error state instead of a generic message.
- Classify the plain-text failure bodies at the Electron transport boundary as
a structured marker rather than by JSON.stringify regex.
- Re-present the persisted stalkerToken in the handshake (which is
idempotent), skipping get_profile when it comes back unchanged and not
flagged not_valid, and write a renegotiated session back. The watchdog
cadence is persisted with the token because that reuse skips the only
response carrying it.
- Take the watchdog cadence from the profile (watchdog_timeout + timeslot),
defaulting to the documented 120 s instead of pinging every 25 s.
Splits stalker-session.service.ts into an auth API, a watchdog controller, a
portal-error module and a response classifier; the service is now a facade and
drops off the max-lines baseline.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e197409b10
commit
28429580a5
51 files changed
+3626
-656
No files matched your search
@@ -0,0 +1,10 @@
|
||||
---
|
||||
type: feature
|
||||
area: stalker
|
||||
---
|
||||
|
||||
Stalker portals that ask for a login and password now work: the import dialog
|
||||
gained username/password fields and the app completes the portal's do_auth
|
||||
step. When a portal refuses access, its own explanation is shown instead of a
|
||||
generic error, saved sessions resume without re-authenticating, and the
|
||||
keep-alive ping follows the portal's cadence.
|
||||
Reference in new issue
Block a user