[{"data":1,"prerenderedAt":877},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":208,"-getting-started-installation-surround":872},[4,42,68,115,136,157],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Getting Started","\u002Fgetting-started","1.getting-started\u002F0.index",[9,12,17,22,27,32,37],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-sparkles",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","i-lucide-settings",{"title":23,"path":24,"stem":25,"icon":26},"Client Setup","\u002Fgetting-started\u002Fclient-setup","1.getting-started\u002F3.client-setup","i-lucide-monitor",{"title":28,"path":29,"stem":30,"icon":31},"Type Augmentation","\u002Fgetting-started\u002Ftype-augmentation","1.getting-started\u002F4.type-augmentation","i-lucide-type",{"title":33,"path":34,"stem":35,"icon":36},"Schema Generation (NuxtHub)","\u002Fgetting-started\u002Fschema-generation","1.getting-started\u002F5.schema-generation","i-lucide-database",{"title":38,"path":39,"stem":40,"icon":41},"How It Works","\u002Fgetting-started\u002Fhow-it-works","1.getting-started\u002F6.how-it-works","i-lucide-workflow",{"title":43,"path":44,"stem":45,"children":46,"page":67},"Core Concepts","\u002Fcore-concepts","2.core-concepts",[47,51,55,59,63],{"title":48,"path":49,"stem":50},"serverAuth()","\u002Fcore-concepts\u002Fserver-auth","2.core-concepts\u002F1.server-auth",{"title":52,"path":53,"stem":54},"Sessions","\u002Fcore-concepts\u002Fsessions","2.core-concepts\u002F2.sessions",{"title":56,"path":57,"stem":58},"Route Protection","\u002Fcore-concepts\u002Froute-protection","2.core-concepts\u002F3.route-protection",{"title":60,"path":61,"stem":62},"Auto‑Imports and Aliases","\u002Fcore-concepts\u002Fauto-imports-aliases","2.core-concepts\u002F4.auto-imports-aliases",{"title":64,"path":65,"stem":66},"Security & Caveats","\u002Fcore-concepts\u002Fsecurity-caveats","2.core-concepts\u002F5.security-caveats",false,{"title":69,"path":70,"stem":71,"children":72,"page":67},"Guides","\u002Fguides","3.guides",[73,77,82,86,90,94,99,103,107,111],{"title":74,"path":75,"stem":76},"Role‑Based Access","\u002Fguides\u002Frole-based-access","3.guides\u002F1.role-based-access",{"title":78,"path":79,"stem":80,"icon":81},"Setup diagnostics","\u002Fguides\u002Fdiagnostics","3.guides\u002F10.diagnostics","i-lucide-circle-alert",{"title":83,"path":84,"stem":85},"OAuth Providers","\u002Fguides\u002Foauth-providers","3.guides\u002F2.oauth-providers",{"title":87,"path":88,"stem":89},"Custom Database","\u002Fguides\u002Fcustom-database","3.guides\u002F3.custom-database",{"title":91,"path":92,"stem":93},"Database-less Mode","\u002Fguides\u002Fdatabase-less-mode","3.guides\u002F4.database-less-mode",{"title":95,"path":96,"stem":97,"icon":98},"External Auth Backend","\u002Fguides\u002Fexternal-auth-backend","3.guides\u002F5.external-auth-backend","i-lucide-server",{"title":100,"path":101,"stem":102},"Migrating from nuxt-auth-utils","\u002Fguides\u002Fmigrate-from-nuxt-auth-utils","3.guides\u002F6.migrate-from-nuxt-auth-utils",{"title":104,"path":105,"stem":106},"Two-Factor Authentication (TOTP + Backup Codes)","\u002Fguides\u002Ftwo-factor-auth","3.guides\u002F7.two-factor-auth",{"title":108,"path":109,"stem":110},"Testing","\u002Fguides\u002Ftesting","3.guides\u002F8.testing",{"title":112,"path":113,"stem":114},"Production Deployment","\u002Fguides\u002Fproduction-deployment","3.guides\u002F9.production-deployment",{"title":116,"path":117,"stem":118,"children":119,"page":67},"Integrations","\u002Fintegrations","4.integrations",[120,124,128,132],{"title":121,"path":122,"stem":123},"NuxtHub","\u002Fintegrations\u002Fnuxthub","4.integrations\u002F1.nuxthub",{"title":125,"path":126,"stem":127},"DevTools","\u002Fintegrations\u002Fdevtools","4.integrations\u002F2.devtools",{"title":129,"path":130,"stem":131},"Convex","\u002Fintegrations\u002Fconvex","4.integrations\u002F3.convex",{"title":133,"path":134,"stem":135},"i18n","\u002Fintegrations\u002Fi18n","4.integrations\u002F4.i18n",{"title":137,"path":138,"stem":139,"children":140,"page":67},"API Reference","\u002Fapi","5.api",[141,145,149,153],{"title":142,"path":143,"stem":144},"Composables","\u002Fapi\u002Fcomposables","5.api\u002F1.composables",{"title":146,"path":147,"stem":148},"Server Utilities","\u002Fapi\u002Fserver-utils","5.api\u002F2.server-utils",{"title":150,"path":151,"stem":152},"Components","\u002Fapi\u002Fcomponents","5.api\u002F3.components",{"title":154,"path":155,"stem":156},"Types","\u002Fapi\u002Ftypes","5.api\u002F4.types",{"title":158,"path":159,"stem":160,"children":161,"icon":81},"Errors","\u002Ferrors","6.errors\u002F0.index",[162,164,168,172,176,180,184,188,192,196,200,204],{"title":163,"path":159,"stem":160},"Overview",{"title":165,"path":166,"stem":167},"Auth configuration failed to load","\u002Ferrors\u002Fnuxt-auth-config-load-failed","6.errors\u002Fnuxt-auth-config-load-failed",{"title":169,"path":170,"stem":171},"Schema generator returned no code","\u002Ferrors\u002Fnuxt-auth-empty-schema","6.errors\u002Fnuxt-auth-empty-schema",{"title":173,"path":174,"stem":175},"Invalid server auth config export","\u002Ferrors\u002Fnuxt-auth-invalid-config-export","6.errors\u002Fnuxt-auth-invalid-config-export",{"title":177,"path":178,"stem":179},"Auth plugin path must be absolute","\u002Ferrors\u002Fnuxt-auth-invalid-plugin-source","6.errors\u002Fnuxt-auth-invalid-plugin-source",{"title":181,"path":182,"stem":183},"Missing auth configuration","\u002Ferrors\u002Fnuxt-auth-missing-config","6.errors\u002Fnuxt-auth-missing-config",{"title":185,"path":186,"stem":187},"NuxtHub database alias is missing","\u002Ferrors\u002Fnuxt-auth-missing-hub-db","6.errors\u002Fnuxt-auth-missing-hub-db",{"title":189,"path":190,"stem":191},"No database provider is enabled","\u002Ferrors\u002Fnuxt-auth-no-database-provider","6.errors\u002Fnuxt-auth-no-database-provider",{"title":193,"path":194,"stem":195},"Auth schema generation failed","\u002Ferrors\u002Fnuxt-auth-schema-generation-failed","6.errors\u002Fnuxt-auth-schema-generation-failed",{"title":197,"path":198,"stem":199},"Custom session storage is missing","\u002Ferrors\u002Fnuxt-auth-schema-storage-required","6.errors\u002Fnuxt-auth-schema-storage-required",{"title":201,"path":202,"stem":203},"Secondary storage in client-only mode","\u002Ferrors\u002Fnuxt-auth-storage-client-only","6.errors\u002Fnuxt-auth-storage-client-only",{"title":205,"path":206,"stem":207},"Unsupported database dialect","\u002Ferrors\u002Fnuxt-auth-unsupported-dialect","6.errors\u002Fnuxt-auth-unsupported-dialect",{"id":209,"title":13,"body":210,"description":865,"extension":866,"links":867,"meta":868,"navigation":869,"path":14,"seo":870,"stem":15,"__hash__":871},"docs\u002F1.getting-started\u002F1.installation.md",{"type":211,"value":212,"toc":855},"minimark",[213,290,294,299,357,361,766,770,773,794,798,823,834,851],[214,215,216],"code-collapse",{},[217,218,224],"pre",{"className":219,"code":220,"filename":221,"language":222,"meta":223,"style":223},"language-txt shiki shiki-themes one-light synthwave-84 synthwave-84","Install @nuxtjs\u002Fbetter-auth in my Nuxt app.\n\n- Read the raw installation documentation first: https:\u002F\u002Fbetter-auth.nuxt.dev\u002Fraw\u002Fgetting-started\u002Finstallation.md\n- Run `npx nuxi module add @nuxtjs\u002Fbetter-auth`\n- Set `NUXT_APP_SECRET` in `.env` on Nuxt 4.6+, or `NUXT_BETTER_AUTH_SECRET` or `BETTER_AUTH_SECRETS` on any version (at least 32 chars per current secret, high entropy). A configured auth secret takes precedence over `NUXT_APP_SECRET`\n- Set `NUXT_PUBLIC_SITE_URL` for Cloudflare Workers, custom domains, and production hosts without a supported platform URL variable\n- Create `server\u002Fauth.config.ts` using `defineServerAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n- Create `app\u002Fauth.config.ts` using `defineClientAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n- The module auto-injects `secret` and `baseURL` — do not configure them manually\n- In `defineServerAuth`, use the app config callback's `requestOrigin` when Better Auth needs the current request host, such as `trustedOrigins`\n","Prompt","txt","",[225,226,227,235,242,248,254,260,266,272,278,284],"code",{"__ignoreMap":223},[228,229,232],"span",{"class":230,"line":231},"line",1,[228,233,234],{},"Install @nuxtjs\u002Fbetter-auth in my Nuxt app.\n",[228,236,238],{"class":230,"line":237},2,[228,239,241],{"emptyLinePlaceholder":240},true,"\n",[228,243,245],{"class":230,"line":244},3,[228,246,247],{},"- Read the raw installation documentation first: https:\u002F\u002Fbetter-auth.nuxt.dev\u002Fraw\u002Fgetting-started\u002Finstallation.md\n",[228,249,251],{"class":230,"line":250},4,[228,252,253],{},"- Run `npx nuxi module add @nuxtjs\u002Fbetter-auth`\n",[228,255,257],{"class":230,"line":256},5,[228,258,259],{},"- Set `NUXT_APP_SECRET` in `.env` on Nuxt 4.6+, or `NUXT_BETTER_AUTH_SECRET` or `BETTER_AUTH_SECRETS` on any version (at least 32 chars per current secret, high entropy). A configured auth secret takes precedence over `NUXT_APP_SECRET`\n",[228,261,263],{"class":230,"line":262},6,[228,264,265],{},"- Set `NUXT_PUBLIC_SITE_URL` for Cloudflare Workers, custom domains, and production hosts without a supported platform URL variable\n",[228,267,269],{"class":230,"line":268},7,[228,270,271],{},"- Create `server\u002Fauth.config.ts` using `defineServerAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n",[228,273,275],{"class":230,"line":274},8,[228,276,277],{},"- Create `app\u002Fauth.config.ts` using `defineClientAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n",[228,279,281],{"class":230,"line":280},9,[228,282,283],{},"- The module auto-injects `secret` and `baseURL` — do not configure them manually\n",[228,285,287],{"class":230,"line":286},10,[228,288,289],{},"- In `defineServerAuth`, use the app config callback's `requestOrigin` when Better Auth needs the current request host, such as `trustedOrigins`\n",[291,292,293],"p",{},"Use this page when you want the full install checklist rather than the shorter quickstart.",[295,296,298],"h2",{"id":297},"prerequisites","Prerequisites",[300,301,302,324,338,341,347,350],"ul",{},[303,304,305,306,315,316,319,320,323],"li",{},"Nuxt 4.0 or newer. On Nuxt 4.6 and newer, the module's server code is built on ",[307,308,312],"a",{"href":309,"rel":310},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fserver-imports",[311],"nofollow",[225,313,314],{},"nuxt\u002Fserver"," when the app runs Nitro v3 or a ",[225,317,318],{},"server.builder"," other than Nitro. Apps on ",[225,321,322],{},"nitropack"," v2 keep the h3 v1 runtime.",[303,325,326,327,330,331,334,335],{},"Node.js ",[225,328,329],{},"^22.19.0",", ",[225,332,333],{},"^24.11.0",", or ",[225,336,337],{},">=26.0.0",[303,339,340],{},"A Better Auth 1.x version that satisfies this package's peer dependency range",[303,342,343,344],{},"NuxtHub 0.10.5 or newer if you plan to use the optional ",[307,345,346],{"href":122},"NuxtHub integration",[303,348,349],{},"a package manager configured for your app",[303,351,352,353,356],{},"a local ",[225,354,355],{},".env"," file or deployment environment variable system",[295,358,360],{"id":359},"add-to-project","Add to project",[362,363,364,369,395,399,430,436,445,448,460,469,479,485,494,497,500,520,540,543,552,559,583,592,605,609,628,631,651,654,730],"steps",{},[365,366,368],"h3",{"id":367},"install-the-module","Install the module",[217,370,374],{"className":371,"code":372,"language":373,"meta":223,"style":223},"language-bash shiki shiki-themes one-light synthwave-84 synthwave-84","npx nuxi module add @nuxtjs\u002Fbetter-auth\n","bash",[225,375,376],{"__ignoreMap":223},[228,377,378,382,386,389,392],{"class":230,"line":231},[228,379,381],{"class":380},"siqUp","npx",[228,383,385],{"class":384},"sI3kV"," nuxi",[228,387,388],{"class":384}," module",[228,390,391],{"class":384}," add",[228,393,394],{"class":384}," @nuxtjs\u002Fbetter-auth\n",[365,396,398],{"id":397},"set-environment-variables","Set environment variables",[400,401,402,403,406,407,409,410,413,414,417,418,330,420,334,423,426,427,429],"tip",{"icon":11},"When you install the module with ",[225,404,405],{},"nuxi module add",", it prompts you to generate a secret and can append it to your ",[225,408,355],{},": ",[225,411,412],{},"NUXT_APP_SECRET"," on Nuxt 4.6+, ",[225,415,416],{},"NUXT_BETTER_AUTH_SECRET"," on older versions. The prompt is skipped when ",[225,419,416],{},[225,421,422],{},"BETTER_AUTH_SECRET",[225,424,425],{},"BETTER_AUTH_SECRETS"," is already configured, or on Nuxt 4.6+ when ",[225,428,412],{}," is. In CI\u002Ftest environments it generates the secret without asking.",[291,431,432,433,435],{},"Add these environment variables to ",[225,434,355],{},":",[437,438,439],"ol",{},[303,440,441],{},[442,443,444],"strong",{},"Secret Key",[291,446,447],{},"The secret encrypts and hashes sensitive data. Must be at least 32 characters with high entropy.",[291,449,450,451,456,457,435],{},"On Nuxt 4.6 and newer, set Nuxt's ",[307,452,455],{"href":453,"rel":454},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fruntime-config#application-secret",[311],"application secret",". When no auth secret is configured, the module derives one from it with ",[225,458,459],{},"deriveSecret('better-auth:secret')",[217,461,463],{"className":219,"code":462,"filename":355,"language":222,"meta":223,"style":223},"NUXT_APP_SECRET=\n",[225,464,465],{"__ignoreMap":223},[228,466,467],{"class":230,"line":231},[228,468,462],{},[291,470,471,472,475,476,478],{},"In development, Nuxt generates an ",[225,473,474],{},"appSecret"," when you have not set one. The module does not derive its secret from that generated value: it keeps Better Auth's development default, so existing development sessions stay valid until you set ",[225,477,412],{},".",[291,480,481,482,484],{},"On older Nuxt versions, or to keep a dedicated auth secret, set ",[225,483,416],{}," instead:",[217,486,488],{"className":219,"code":487,"filename":355,"language":222,"meta":223,"style":223},"NUXT_BETTER_AUTH_SECRET=\n",[225,489,490],{"__ignoreMap":223},[228,491,492],{"class":230,"line":231},[228,493,487],{},[495,496],"generate-secret",{},[291,498,499],{},"Or generate via terminal:",[217,501,503],{"className":371,"code":502,"language":373,"meta":223,"style":223},"openssl rand -base64 32\n",[225,504,505],{"__ignoreMap":223},[228,506,507,510,513,517],{"class":230,"line":231},[228,508,509],{"class":380},"openssl",[228,511,512],{"class":384}," rand",[228,514,516],{"class":515},"s3ZNE"," -base64",[228,518,519],{"class":515}," 32\n",[400,521,522,330,524,330,526,528,529,532,533,536,537,539],{},[225,523,416],{},[225,525,422],{},[225,527,425],{},", and ",[225,530,531],{},"secrets"," in ",[225,534,535],{},"defineServerAuth"," always take precedence over ",[225,538,412],{},", so existing apps keep their sessions. Removing them from a deployment changes the auth secret: users are signed out and data encrypted with the old secret can no longer be read.",[291,541,542],{},"For non-destructive rotation, use Better Auth's versioned environment variable instead:",[217,544,546],{"className":219,"code":545,"filename":355,"language":222,"meta":223,"style":223},"BETTER_AUTH_SECRETS=2:current-secret-must-be-at-least-32-characters,1:previous-secret-must-be-at-least-32-characters\n",[225,547,548],{"__ignoreMap":223},[228,549,550],{"class":230,"line":231},[228,551,545],{},[437,553,554],{"start":237},[303,555,556],{},[442,557,558],{},"Base URL",[291,560,561,562,565,566,570,571,574,575,578,579,582],{},"Set ",[225,563,564],{},"NUXT_PUBLIC_SITE_URL"," for ",[567,568],"brand-badge",{"name":569},"cloudflare"," Workers, custom domains, and production hosts without a supported platform URL variable. For platform domains, the module can use ",[225,572,573],{},"VERCEL_URL"," (Vercel), ",[225,576,577],{},"CF_PAGES_URL"," (Cloudflare Pages), or ",[225,580,581],{},"URL"," (Netlify) when available at runtime.",[217,584,586],{"className":219,"code":585,"filename":355,"language":222,"meta":223,"style":223},"NUXT_PUBLIC_SITE_URL=https:\u002F\u002Fyour-domain.com\n",[225,587,588],{"__ignoreMap":223},[228,589,590],{"class":230,"line":231},[228,591,585],{},[291,593,594,595,597,598,600,601,604],{},"Cloudflare Workers does not supply ",[225,596,577],{},". Configure ",[225,599,564],{}," in the Worker's runtime variables, including for ",[225,602,603],{},"workers.dev"," deployments. Without an explicit or supported platform URL, production auth initialization fails.",[365,606,608],{"id":607},"create-configuration-files","Create configuration files",[400,610,611,612,615,616,619,620,623,624,627],{"icon":11},"During module install, ",[225,613,614],{},"server\u002Fauth.config.ts"," and ",[225,617,618],{},"\u003CsrcDir>\u002Fauth.config.ts"," are scaffolded if missing. The client config is placed in your ",[225,621,622],{},"srcDir"," (e.g., ",[225,625,626],{},"app\u002F"," or project root).",[291,629,630],{},"The module requires two configuration files:",[437,632,633,640],{},[303,634,635,409,638],{},[442,636,637],{},"Server Configuration",[225,639,614],{},[303,641,642,409,645,623,647,650],{},[442,643,644],{},"Client Configuration",[225,646,618],{},[225,648,649],{},"app\u002Fauth.config.ts",")",[291,652,653],{},"Create these files with the following content:",[217,655,659],{"className":656,"code":657,"filename":614,"language":658,"meta":223,"style":223},"language-ts shiki shiki-themes one-light synthwave-84 synthwave-84","import { defineServerAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineServerAuth({\n  emailAndPassword: { enabled: true }\n})\n","ts",[225,660,661,684,688,704,725],{"__ignoreMap":223},[228,662,663,667,671,674,677,680],{"class":230,"line":231},[228,664,666],{"class":665},"sqe1H","import",[228,668,670],{"class":669},"s17Py"," { ",[228,672,535],{"class":673},"sYvLG",[228,675,676],{"class":669}," } ",[228,678,679],{"class":665},"from",[228,681,683],{"class":682},"sPAZv"," '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n",[228,685,686],{"class":230,"line":237},[228,687,241],{"emptyLinePlaceholder":240},[228,689,690,693,697,701],{"class":230,"line":244},[228,691,692],{"class":665},"export",[228,694,696],{"class":695},"sKg8T"," default",[228,698,700],{"class":699},"sfT9l"," defineServerAuth",[228,702,703],{"class":669},"({\n",[228,705,706,709,712,714,717,719,722],{"class":230,"line":250},[228,707,708],{"class":673},"  emailAndPassword",[228,710,435],{"class":711},"sVnqq",[228,713,670],{"class":669},[228,715,716],{"class":673},"enabled",[228,718,435],{"class":711},[228,720,721],{"class":515}," true",[228,723,724],{"class":669}," }\n",[228,726,727],{"class":230,"line":256},[228,728,729],{"class":669},"})\n",[217,731,733],{"className":656,"code":732,"filename":649,"language":658,"meta":223,"style":223},"import { defineClientAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineClientAuth({})\n",[225,734,735,750,754],{"__ignoreMap":223},[228,736,737,739,741,744,746,748],{"class":230,"line":231},[228,738,666],{"class":665},[228,740,670],{"class":669},[228,742,743],{"class":673},"defineClientAuth",[228,745,676],{"class":669},[228,747,679],{"class":665},[228,749,683],{"class":682},[228,751,752],{"class":230,"line":237},[228,753,241],{"emptyLinePlaceholder":240},[228,755,756,758,760,763],{"class":230,"line":244},[228,757,692],{"class":665},[228,759,696],{"class":695},[228,761,762],{"class":699}," defineClientAuth",[228,764,765],{"class":669},"({})\n",[295,767,769],{"id":768},"verify-the-installation","Verify the installation",[291,771,772],{},"Confirm all of the following:",[300,774,775,778,783,791],{},[303,776,777],{},"Nuxt starts without missing-config errors",[303,779,780,782],{},[225,781,614],{}," exists",[303,784,785,787,788,790],{},[225,786,649],{}," or your ",[225,789,622],{}," equivalent exists",[303,792,793],{},"a singular or versioned auth secret is available at runtime",[295,795,797],{"id":796},"next-steps","Next steps",[300,799,800,807,813],{},[303,801,802,803,806],{},"Continue with ",[307,804,805],{"href":19},"configuration"," to set module options and route protection.",[303,808,802,809,812],{},[307,810,811],{"href":24},"client setup"," to wire sign-in and sign-out flows.",[303,814,815,816,819,820,478],{},"If you need durable persistence, pick either ",[567,817],{"name":818,"to":122},"nuxthub"," integration or ",[307,821,822],{"href":88},"custom database",[824,825,826,829,830,833],"callout",{"icon":36,"to":122},[442,827,828],{},"Need database persistence?"," See ",[567,831],{"name":818,":unlinked":832},"true"," Integration for auto-generated schemas and full database support.",[824,835,837,840,841,330,844,334,847,850],{"icon":836,"to":88},"i-lucide-hard-drive",[442,838,839],{},"Bring your own database?"," Use ",[567,842],{"name":843,":unlinked":832},"drizzle",[567,845],{"name":846,":unlinked":832},"prisma",[567,848],{"name":849,":unlinked":832},"kysely"," adapters with any database.",[852,853,854],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .siqUp, html code.shiki .siqUp{--shiki-light:#4078F2;--shiki-default:#FE4450;--shiki-dark:#FE4450}html pre.shiki code .sI3kV, html code.shiki .sI3kV{--shiki-light:#50A14F;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}html pre.shiki code .s3ZNE, html code.shiki .s3ZNE{--shiki-light:#986801;--shiki-default:#F97E72;--shiki-dark:#F97E72}html pre.shiki code .sqe1H, html code.shiki .sqe1H{--shiki-light:#A626A4;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .s17Py, html code.shiki .s17Py{--shiki-light:#383A42;--shiki-default:#BBBBBB;--shiki-dark:#BBBBBB}html pre.shiki code .sYvLG, html code.shiki .sYvLG{--shiki-light:#E45649;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sPAZv, html code.shiki .sPAZv{--shiki-light:#50A14F;--shiki-default:#FF8B39;--shiki-dark:#FF8B39}html pre.shiki code .sKg8T, html code.shiki .sKg8T{--shiki-light:#E45649;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .sfT9l, html code.shiki .sfT9l{--shiki-light:#4078F2;--shiki-default:#36F9F6;--shiki-dark:#36F9F6}html pre.shiki code .sVnqq, html code.shiki .sVnqq{--shiki-light:#0184BC;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}",{"title":223,"searchDepth":237,"depth":237,"links":856},[857,858,863,864],{"id":297,"depth":237,"text":298},{"id":359,"depth":237,"text":360,"children":859},[860,861,862],{"id":367,"depth":244,"text":368},{"id":397,"depth":244,"text":398},{"id":607,"depth":244,"text":608},{"id":768,"depth":237,"text":769},{"id":796,"depth":237,"text":797},"Learn how to add Nuxt Better Auth to your Nuxt project.","md",null,{},{"icon":16},{"title":13,"description":865},"OcmeS3ixaG_nyln4MutsQy8X5CtkGNOP9RZvnDK5uHY",[873,875],{"title":10,"path":6,"stem":7,"description":874,"icon":11,"children":-1},"Nuxt Better Auth integrates Better Auth with Nuxt for route protection, session management, and schema generation.",{"title":18,"path":19,"stem":20,"description":876,"icon":21,"children":-1},"Configure the module options and your Better Auth server instance.",1791297056137]