Skip to content

Magic-link login for hosting panels (TigerWHM Admin button) — 1.8.0 - #270

Merged
WebTigers merged 1 commit into
mainfrom
feat/magic-link-login
Sep 14, 2026
Merged

WebTigers merged 1 commit into
mainfrom
feat/magic-link-login

Conversation

@WebTigers

Copy link
Copy Markdown
Owner

Summary

  • Tiger_Service_Authentication::issueMagicLink($userId)/auth/magic/id/<challenge>/t/<token> (2-min TTL, single-use, hash-only storage, one live link per user) and redeemMagicLink() → session + login audit.
  • AuthController::magicAction — success lands in the role home (/admin), anything else goes to /auth/login.
  • Minted only by an owner of the install (the headless login verb / TigerWHM's Admin button), never by a web request. This is WP Toolkit's "Log in" for Tiger.

Test plan

  • AuthenticationTest: +2 (sign-in + audit + replay; wrong token / malformed id / superseded / expired / inactive).
  • CoreControllerDispatchTest: +1 (redirects both ways, identity established).
  • Full suite: 2358 green locally.

🤖 Generated with Claude Code

https://claude.ai/code/session_01L8p9pLJ3DFstG3xZuh2QgZ

….8.0)

A one-time, 2-minute, single-use sign-in URL on the existing
auth_challenge substrate (type magic_link; only the token hash stored;
one live link per user; attempt-limited), redeemed into a session and
audited like any login. Minted only by something that owns the install —
the headless installer's login verb, a hosting panel's Log in button —
never by a web request. Tests: service (sign-in + audit, replay, wrong
token, malformed id, superseded, expired, inactive user) and controller
(/auth/magic lands an admin in /admin; a bad link goes to /auth/login).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L8p9pLJ3DFstG3xZuh2QgZ
@WebTigers
WebTigers merged commit eca7e33 into main Sep 14, 2026
14 checks passed
@WebTigers
WebTigers deleted the feat/magic-link-login branch September 14, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant