If you already have Clerk, Auth.js, or better-auth managing sign-in, skip plugins entirely and use an auth adapter instead.
Auth methods
Email and password
Register, sign in, password reset, and email verification with argon2id hashing.
Magic link
Passwordless sign-in: send a one-time link to the user’s email.
Email OTP
Six-digit one-time codes delivered via email.
Passkey
WebAuthn/FIDO2 biometric and hardware key sign-in.
Two-factor auth
TOTP authenticator app support with backup codes.
OAuth providers
Sign in with Google accounts via OAuth 2.0.
GitHub
Sign in with GitHub using user:email scope.
Apple
Sign in with Apple ID.
Discord
Sign in with Discord accounts.
Slack
Sign in with Slack workspace accounts.
Microsoft
Sign in with Microsoft / Azure AD accounts.
GitLab
Sign in with GitLab accounts (cloud or self-hosted).
Sign in with LinkedIn professional accounts.
How plugins work
Pass plugins tocreateKavach(). Each plugin registers its own routes, database tables, and session logic:
lib/kavach.ts