[{"data":1,"prerenderedAt":825},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":208,"-getting-started-installation-surround":820},[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":813,"extension":814,"links":815,"meta":816,"navigation":817,"path":14,"seo":818,"stem":15,"__hash__":819},"docs\u002F1.getting-started\u002F1.installation.md",{"type":211,"value":212,"toc":803},"minimark",[213,290,294,299,357,361,713,717,720,741,745,771,782,799],[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_BETTER_AUTH_SECRET` or `BETTER_AUTH_SECRETS` in `.env` (at least 32 chars per current secret, high entropy)\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_BETTER_AUTH_SECRET` or `BETTER_AUTH_SECRETS` in `.env` (at least 32 chars per current secret, high entropy)\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,423,429,438,441,450,453,456,476,485,488,497,504,528,537,550,554,573,576,597,600,677],"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,410,411,413,414,330,416,334,419,422],"tip",{"icon":11},"When you install the module with ",[225,404,405],{},"nuxi module add",", it prompts you to generate ",[225,408,409],{},"NUXT_BETTER_AUTH_SECRET"," and can append it to your ",[225,412,355],{},". The prompt is skipped when ",[225,415,409],{},[225,417,418],{},"BETTER_AUTH_SECRET",[225,420,421],{},"BETTER_AUTH_SECRETS"," is already configured. In CI\u002Ftest environments it auto-generates the singular secret.",[291,424,425,426,428],{},"Add these environment variables to ",[225,427,355],{},":",[430,431,432],"ol",{},[303,433,434],{},[435,436,437],"strong",{},"Secret Key",[291,439,440],{},"The secret encrypts and hashes sensitive data. Must be at least 32 characters with high entropy.",[217,442,444],{"className":219,"code":443,"filename":355,"language":222,"meta":223,"style":223},"NUXT_BETTER_AUTH_SECRET=\n",[225,445,446],{"__ignoreMap":223},[228,447,448],{"class":230,"line":231},[228,449,443],{},[451,452],"generate-secret",{},[291,454,455],{},"Or generate via terminal:",[217,457,459],{"className":371,"code":458,"language":373,"meta":223,"style":223},"openssl rand -base64 32\n",[225,460,461],{"__ignoreMap":223},[228,462,463,466,469,473],{"class":230,"line":231},[228,464,465],{"class":380},"openssl",[228,467,468],{"class":384}," rand",[228,470,472],{"class":471},"s3ZNE"," -base64",[228,474,475],{"class":471}," 32\n",[400,477,478,479,481,482,484],{},"Use ",[225,480,409],{}," for Nuxt runtime config and multi-environment deployments. ",[225,483,418],{}," remains supported as a fallback.",[291,486,487],{},"For non-destructive rotation, use Better Auth's versioned environment variable instead:",[217,489,491],{"className":219,"code":490,"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,492,493],{"__ignoreMap":223},[228,494,495],{"class":230,"line":231},[228,496,490],{},[430,498,499],{"start":237},[303,500,501],{},[435,502,503],{},"Base URL",[291,505,506,507,510,511,515,516,519,520,523,524,527],{},"Set ",[225,508,509],{},"NUXT_PUBLIC_SITE_URL"," for ",[512,513],"brand-badge",{"name":514},"cloudflare"," Workers, custom domains, and production hosts without a supported platform URL variable. For platform domains, the module can use ",[225,517,518],{},"VERCEL_URL"," (Vercel), ",[225,521,522],{},"CF_PAGES_URL"," (Cloudflare Pages), or ",[225,525,526],{},"URL"," (Netlify) when available at runtime.",[217,529,531],{"className":219,"code":530,"filename":355,"language":222,"meta":223,"style":223},"NUXT_PUBLIC_SITE_URL=https:\u002F\u002Fyour-domain.com\n",[225,532,533],{"__ignoreMap":223},[228,534,535],{"class":230,"line":231},[228,536,530],{},[291,538,539,540,542,543,545,546,549],{},"Cloudflare Workers does not supply ",[225,541,522],{},". Configure ",[225,544,509],{}," in the Worker's runtime variables, including for ",[225,547,548],{},"workers.dev"," deployments. Without an explicit or supported platform URL, production auth initialization fails.",[365,551,553],{"id":552},"create-configuration-files","Create configuration files",[400,555,556,557,560,561,564,565,568,569,572],{"icon":11},"During module install, ",[225,558,559],{},"server\u002Fauth.config.ts"," and ",[225,562,563],{},"\u003CsrcDir>\u002Fauth.config.ts"," are scaffolded if missing. The client config is placed in your ",[225,566,567],{},"srcDir"," (e.g., ",[225,570,571],{},"app\u002F"," or project root).",[291,574,575],{},"The module requires two configuration files:",[430,577,578,586],{},[303,579,580,583,584],{},[435,581,582],{},"Server Configuration",": ",[225,585,559],{},[303,587,588,583,591,568,593,596],{},[435,589,590],{},"Client Configuration",[225,592,563],{},[225,594,595],{},"app\u002Fauth.config.ts",")",[291,598,599],{},"Create these files with the following content:",[217,601,605],{"className":602,"code":603,"filename":559,"language":604,"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,606,607,631,635,651,672],{"__ignoreMap":223},[228,608,609,613,617,621,624,627],{"class":230,"line":231},[228,610,612],{"class":611},"sqe1H","import",[228,614,616],{"class":615},"s17Py"," { ",[228,618,620],{"class":619},"sYvLG","defineServerAuth",[228,622,623],{"class":615}," } ",[228,625,626],{"class":611},"from",[228,628,630],{"class":629},"sPAZv"," '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n",[228,632,633],{"class":230,"line":237},[228,634,241],{"emptyLinePlaceholder":240},[228,636,637,640,644,648],{"class":230,"line":244},[228,638,639],{"class":611},"export",[228,641,643],{"class":642},"sKg8T"," default",[228,645,647],{"class":646},"sfT9l"," defineServerAuth",[228,649,650],{"class":615},"({\n",[228,652,653,656,659,661,664,666,669],{"class":230,"line":250},[228,654,655],{"class":619},"  emailAndPassword",[228,657,428],{"class":658},"sVnqq",[228,660,616],{"class":615},[228,662,663],{"class":619},"enabled",[228,665,428],{"class":658},[228,667,668],{"class":471}," true",[228,670,671],{"class":615}," }\n",[228,673,674],{"class":230,"line":256},[228,675,676],{"class":615},"})\n",[217,678,680],{"className":602,"code":679,"filename":595,"language":604,"meta":223,"style":223},"import { defineClientAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineClientAuth({})\n",[225,681,682,697,701],{"__ignoreMap":223},[228,683,684,686,688,691,693,695],{"class":230,"line":231},[228,685,612],{"class":611},[228,687,616],{"class":615},[228,689,690],{"class":619},"defineClientAuth",[228,692,623],{"class":615},[228,694,626],{"class":611},[228,696,630],{"class":629},[228,698,699],{"class":230,"line":237},[228,700,241],{"emptyLinePlaceholder":240},[228,702,703,705,707,710],{"class":230,"line":244},[228,704,639],{"class":611},[228,706,643],{"class":642},[228,708,709],{"class":646}," defineClientAuth",[228,711,712],{"class":615},"({})\n",[295,714,716],{"id":715},"verify-the-installation","Verify the installation",[291,718,719],{},"Confirm all of the following:",[300,721,722,725,730,738],{},[303,723,724],{},"Nuxt starts without missing-config errors",[303,726,727,729],{},[225,728,559],{}," exists",[303,731,732,734,735,737],{},[225,733,595],{}," or your ",[225,736,567],{}," equivalent exists",[303,739,740],{},"a singular or versioned auth secret is available at runtime",[295,742,744],{"id":743},"next-steps","Next steps",[300,746,747,754,760],{},[303,748,749,750,753],{},"Continue with ",[307,751,752],{"href":19},"configuration"," to set module options and route protection.",[303,755,749,756,759],{},[307,757,758],{"href":24},"client setup"," to wire sign-in and sign-out flows.",[303,761,762,763,766,767,770],{},"If you need durable persistence, pick either ",[512,764],{"name":765,"to":122},"nuxthub"," integration or ",[307,768,769],{"href":88},"custom database",".",[772,773,774,777,778,781],"callout",{"icon":36,"to":122},[435,775,776],{},"Need database persistence?"," See ",[512,779],{"name":765,":unlinked":780},"true"," Integration for auto-generated schemas and full database support.",[772,783,785,788,789,330,792,334,795,798],{"icon":784,"to":88},"i-lucide-hard-drive",[435,786,787],{},"Bring your own database?"," Use ",[512,790],{"name":791,":unlinked":780},"drizzle",[512,793],{"name":794,":unlinked":780},"prisma",[512,796],{"name":797,":unlinked":780},"kysely"," adapters with any database.",[800,801,802],"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":804},[805,806,811,812],{"id":297,"depth":237,"text":298},{"id":359,"depth":237,"text":360,"children":807},[808,809,810],{"id":367,"depth":244,"text":368},{"id":397,"depth":244,"text":398},{"id":552,"depth":244,"text":553},{"id":715,"depth":237,"text":716},{"id":743,"depth":237,"text":744},"Learn how to add Nuxt Better Auth to your Nuxt project.","md",null,{},{"icon":16},{"title":13,"description":813},"8_af8b99L0Z48-UgabvEyG5CuwR_mGjaBcvJZvF0j-M",[821,823],{"title":10,"path":6,"stem":7,"description":822,"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":824,"icon":21,"children":-1},"Configure the module options and your Better Auth server instance.",1791290077987]