Authdog hosts the sign-in, sign-up, MFA, and account-management screens for you, so you can ship [authentication](/docs/concepts/authentication) without building or maintaining any UI. The portal is served on the Authdog identity host and themed per environment.

## What the portal covers

The hosted Account Portal is a complete, ready-to-use set of screens:

- **Sign-in** — email/password, social login, and enterprise SSO, depending on the connections enabled for the environment.
- **Sign-up** — self-service registration with whatever verification your environment requires.
- **MFA** — enrollment and step-up challenges (e.g. TOTP), presented automatically when a user or policy requires it.
- **Account management** — profile, credentials, connected accounts, and active sessions, so users can manage their own identity.

Because these screens are hosted, they always reflect the connections and policies you configure for the environment — no redeploy of your app is needed when you add a social provider or turn on MFA.

## Theming per environment

Each environment (dev, staging, production) themes its portal independently: logo, colors, and copy. This means your development portal can look distinct from production while sharing the same flows, and you promote theming along with the rest of your environment config. See [Deployments](/docs/deployments) for how per-environment configuration is promoted.

## How the redirect flow works

The portal uses a redirect-based flow:

1. Your app sends the user to the hosted portal on the Authdog identity host.
2. The user authenticates there (sign-in, sign-up, MFA as needed).
3. Authdog redirects the user back to your app, establishing an `authdog-session` cookie for the environment.
4. Your frontend and backend read that session and validate it against the environment's public key (`pk_...`).

Your application never handles raw credentials — it only ever sees the resulting session. See [Sessions & tokens](/docs/concepts/sessions-tokens) for how the session is validated on subsequent requests.

## When to use the portal

Reach for the Account Portal when you want auth working with the least code and are happy to send users to an Authdog-hosted URL. Choose an alternative when you need auth inside your own layout:

- **[Components](/docs/components)** — prebuilt, themeable UI mounted directly in your app, no redirect.
- **[Custom flows](/docs/custom-flows)** — fully headless control when neither the portal nor components fit.

To get a portal working end to end, follow the [Quickstarts](/docs/quickstarts).
