What ships by default
Email + password
Standard signup flow with email verification. Handles password resets, account recovery, and rate limiting on attempts.
Magic links
Passwordless email-based sign-in. See Passwordless.
Google OAuth
Sign in with Google. Toggle on in workspace settings; works immediately.
GitHub OAuth
Same. Toggle on, sign in.
Roles & permissions
Role-based access with resource-level scoping. Owner / admin / member by default; customizable.
Session management
Long-lived sessions with refresh, revocation, and device tracking.
Adding auth to a prompt
You don’t have to ask explicitly — every vly project ships with auth. To customize:- Enable Google sign-in
- Add roles
- Magic links only
- Multi-factor
GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET. Get these from Google Cloud Console → Credentials.How auth works under the hood
vly’s auth system is built on Convex’s auth primitives: A few important properties:- The
userstable is yours to extend. Add custom fields (display name, avatar URL, role, plan tier) — vly’s auth code reads from the same table. - Sessions are server-side. No client-side JWT secrets to leak. Revoke instantly from the workspace.
- Auth-aware queries are automatic. Convex’s
ctx.auth.getUserIdentity()is available in every query and mutation, so scoping data to the current user is one line.
Scoping data to the current user
The standard pattern in a Convex query:convex/myStuff.ts
Roles and permissions
Most apps need more than “logged in or not.” vly supports role-based scoping out of the box:convex/teams.ts
Common auth flows
Email verification
Email verification
On sign-up, vly sends a verification email. The user clicks the link; their account becomes verified. Until verified, you can choose to allow limited access (default) or block sign-in entirely. Configure in Workspace settings → Auth → Email verification.
Password reset
Password reset
Built-in. The “Forgot password?” link sends a reset email. The link expires in 1 hour. Configure expiry in Workspace settings → Auth.
Account deletion
Account deletion
Users can delete their own accounts from the settings page (auto-generated for every project). Deletion cascades to user-owned data per the schema’s
cascade rules. See Account deletion.Multi-factor (2FA)
Multi-factor (2FA)
Authenticator-app-based 2FA is one prompt away. SMS-based 2FA is supported via the Twilio integration.
Single Sign-On (SSO / SAML)
Single Sign-On (SSO / SAML)
Available on Enterprise tier. Supports SAML 2.0 and OIDC. SCIM 2.0 for user provisioning. See SSO.
Switching to a third-party provider
If you’d prefer Clerk, Auth0, WorkOS, Firebase Auth, or Supabase Auth, all are first-class integrations:Clerk
Pre-built UI components, social providers, and a polished management dashboard.
Auth0
Enterprise SSO, fine-grained access control, multi-tenant.
WorkOS
SAML SSO + SCIM provisioning for B2B SaaS.
Tips
Related
Passwordless
Magic links, deep dive.
Roles & permissions
The full RBAC model.
Auth flows
Patterns for common auth scenarios.
