1. Docs
  2. Authentication

Authentication

How identities sign in. Canopy gives you two paths into the same platform, pick the one that matches how much of the login UI your app wants to own.

Overview

Authentication in Canopy means turning a user's credentials (email + password, a one-time email code, or an SSO redirect) into a signed access token your app can trust. The platform handles password hashing, email verification, password reset, MFA, refresh tokens, and session revocation. Your app delegates as much or as little of that ceremony as you want, then verifies the resulting JWT against a public JWKS endpoint. To sign in, an identity must be active, be a member of the Environment, and have a way to sign in: an identity created without a password can't use one until it sets one, or signs in through SSO. See the Identities overview for the lifecycle and the three-layer model.

Two paths

Shared infrastructure

Whichever path you pick, the same infrastructure backs both:

RS256-signed JWTs that carry the identity plus its Account / Application / Environment context, verifiable locally via the Environment's own JWKS endpoint at <issuer>/.well-known/jwks.json: every Environment is its own issuer with its own signing keys.Refresh tokens with rotation: swap a long-lived refresh token for a fresh access token without re-authenticating.Server-side sessions: Canopy tracks each authenticated session, and logging out revokes its refresh token. The short-lived access token already issued runs until it expires.Single sign-on: identities can sign in through your upstream identity provider over SSO connections; Canopy matches a returning person on the stable subject the provider asserts, not on their email. See Single Sign-On.Custom auth domains: point a subdomain you own (auth.yourapp.com) at an Environment so its hosted sign-in pages, Hosted Login endpoints and Direct API answer on your own host, which keeps the identity refresh cookie first-party. See Set Up a Custom Auth Domain.
Environment
API version
v1.0
On this page Was this page helpful?

Tell us how we can improve this guide.