createAuth
createAuth<
P>(config): (env,request?) =>AuthInstance
Defined in: packages/auth/src/create-auth.ts:92
Creates a pre-configured auth factory for Cloudflare Workers.
Returns an initAuth() function that accepts per-request environment bindings
(AuthEnvConfig) and produces a fully initialized AuthInstance
with session management, role assignment, impersonation, and magic link support.
Type Parameters
Section titled “Type Parameters”P extends Permissions<readonly string[]>
Parameters
Section titled “Parameters”config
Section titled “config”AuthConfig<P>
The auth configuration including permissions, authentication methods, and role rules.
Returns
Section titled “Returns”A factory function (env: AuthEnvConfig) => AuthInstance to call per-request.
(
env,request?):AuthInstance
Parameters
Section titled “Parameters”request?
Section titled “request?”Request<unknown, CfProperties<unknown>>
Returns
Section titled “Returns”Example
Section titled “Example”import { createAuth } from "@cfast/auth";import { permissions } from "./permissions";
export const initAuth = createAuth({ permissions, magicLink: { sendMagicLink: async ({ email, url }) => { await sendEmail({ to: email, html: `<a href="${url}">Sign in</a>` }); }, }, redirects: { afterLogin: "/", loginPath: "/login" },});
// Per-request initialization:const auth = initAuth({ d1: env.DB, appUrl: "https://myapp.com" });const ctx = await auth.requireUser(request);