Overview
Providers define how users authenticate. They encapsulate login, registration, and session logic for strategies like credentials, passkeys, magic links, and custom flows.
Usage
Register one or more providers when initializing AuthKit():
import { AuthKit } from "@astra-void/au/th-kit";
import { CredentialProvider, PasskeyProvider } from "@astra-void/auth-kit/providers";
import { PrismaAdapter } from "@astra-void/auth-kit/adapters";
export const handler = AuthKit({
adapter: PrismaAdapter(prisma),
providers: [
CredentialProvider(),
PasskeyProvider({ ... })
]
});Client calls like login("credential") or register("passkey") map directly to the corresponding provider.
Built-in Providers
Credential
Email + password authentication.
CredentialProvider()- Compatible with bcrypt, argon2, etc.
- No config required
Passkey
WebAuthn-based passwordless login.
PasskeyProvider({
rpId: "localhost",
rpName: "Your App",
mode: "email", // or "credential"
challengeStore: RedisChallengeStore(redis)
})- Biometric/device authentication
- Requires challenge store (memory or Redis)
- See Passkey Guide
Magiclink
One-time login link sent via email.
MagiclinkProvider()- Requires SMTP setup and adapter methods for token handling
- See Magiclink Guide
Custom Provider
You can build your own:
const MyProvider = {
name: "my-custom",
type: "email",
authorize: async ({ token }) => getUser(token),
register: async ({ email }) => createUser(email)
};See Also
Last updated on