This signs in your team, not your app's end-users
This page is for org admins, developers and platform admins signing in to build — API Studio, Tenant Management, billing. For your app's own end-users, see Okta / Auth0 for tenants.
Every org has its own identity domain, so each org registers its own app under Org Settings → Console SSO — there's no shared, platform-wide config the way Google's console sign-in is nostackai's own setup. This flow uses authorization-code + PKCE, and — unlike the tenant-level implicit flow — the browser itself makes a direct call to your IdP's token endpoint to finish signing in, which is why an origin-allowlist step below is required here and isn't for tenants.
Use https://dev-console.nostackai.com, not nostackai.com
The console you and your team sign in to is https://dev-console.nostackai.com — a different domain from nostackai.com itself, which is the marketing site and has no sign-in page at all. Every URL below uses the real console domain; double-check any existing setup that predates this against it.
Option A — Okta
Trusted Origins is a separate, global Okta setting
It's easy to configure the app integration perfectly and still have sign-in fail, because Trusted Origins lives entirely outside the app integration screen — it's an org-wide allowlist under Security → API. Without https://dev-console.nostackai.com listed there (CORS type checked), the browser's direct fetch() to Okta's token endpoint during PKCE exchange fails with a CORS error, even though the redirect itself worked fine.
Option B — Auth0
Allowed Web Origins is not optional here
Callback and Logout URLs cover the redirect legs of the flow. Neither covers the browser's own direct fetch() to Auth0's token endpoint during PKCE code exchange — that's what Allowed Web Origins is for. Leave it unset and the redirect to Auth0 works fine, the user authenticates fine, and then the token exchange fails with a CORS error on the very last step — a confusing place to discover a missing setting.
Collect the provider's discovery values
Fetch your authorization server's discovery document to get the exact URLs the next step needs:
Okta: https://{yourOktaDomain}/oauth2/default/.well-known/openid-configuration
Auth0: https://{yourAuth0Domain}/.well-known/openid-configuration Copy issuer, authorization_endpoint, token_endpoint, and jwks_uri from that document.
Register it under Org Settings → Console SSO
{
"okta_issuer": "<issuer from the discovery document>",
"okta_auth_endpoint": "<authorization_endpoint>",
"okta_token_endpoint": "<token_endpoint>",
"okta_jwks_uri": "<jwks_uri>",
"okta_client_id": "<client id from your app integration>",
"okta_email_domain": "yourcompany.com",
"okta_scopes": "openid email profile"
} okta_email_domain is what makes sign-in findable
Before your team even has a token, the console has to work out which org's app to redirect to — it does that by looking up the email domain the person typed against every org's saved okta_email_domain. Get this wrong (or leave it off) and your team's sign-in can't be found at login time, even though the rest of the config is correct.