Skip to Content

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

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