SemaFore portal
SemaFore Admin
Mock-backed UI Log in
Session layer
Log in through the portal BFF.
This form now follows the canonical portal-auth contract. The browser still only sees a signed portal session cookie, while the Go server owns the real JWT exchange behind the seam.
The canonical route is POST /auth/token with aud="portal"; the portal keeps the service token server-side and wraps the response in its own session cookie.
Portal auth
- The login action runs on the server, not in the browser.
- The session cookie is httpOnly, signed, and scoped to the portal.
- Local development still uses the mock seam unless the real portal client is enabled.