Skip to content

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.