Authentication
How users authenticate to Civicore.
Civicore uses Clerk for authentication. Clerk issues a signed JWT that the backend verifies on every request.
Supported sign-in methods
- Email + password
- Google (OAuth)
- Email magic-link
Internal user mapping
Each Clerk userId maps to an internal User record in our database. Role memberships are stored
in our database — not in Clerk — because they are domain-specific and scope-bound.
Session and JWT
- Clerk issues short-lived JWTs (typically 60 minutes).
- The frontend transparently refreshes the JWT.
- The backend verifies the JWT signature on every request.