[{"data":1,"prerenderedAt":893},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":216,"-getting-started-installation-surround":888},[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,208,212],{"title":163,"path":159,"stem":160},"Overview",{"title":165,"path":166,"stem":167},"Better Auth CLI is not installed","\u002Ferrors\u002Fnuxt-auth-cli-missing","6.errors\u002Fnuxt-auth-cli-missing",{"title":169,"path":170,"stem":171},"Better Auth CLI version does not match better-auth","\u002Ferrors\u002Fnuxt-auth-cli-version-mismatch","6.errors\u002Fnuxt-auth-cli-version-mismatch",{"title":173,"path":174,"stem":175},"Auth configuration failed to load","\u002Ferrors\u002Fnuxt-auth-config-load-failed","6.errors\u002Fnuxt-auth-config-load-failed",{"title":177,"path":178,"stem":179},"Schema generator returned no code","\u002Ferrors\u002Fnuxt-auth-empty-schema","6.errors\u002Fnuxt-auth-empty-schema",{"title":181,"path":182,"stem":183},"Invalid server auth config export","\u002Ferrors\u002Fnuxt-auth-invalid-config-export","6.errors\u002Fnuxt-auth-invalid-config-export",{"title":185,"path":186,"stem":187},"Auth plugin path must be absolute","\u002Ferrors\u002Fnuxt-auth-invalid-plugin-source","6.errors\u002Fnuxt-auth-invalid-plugin-source",{"title":189,"path":190,"stem":191},"Missing auth configuration","\u002Ferrors\u002Fnuxt-auth-missing-config","6.errors\u002Fnuxt-auth-missing-config",{"title":193,"path":194,"stem":195},"NuxtHub database alias is missing","\u002Ferrors\u002Fnuxt-auth-missing-hub-db","6.errors\u002Fnuxt-auth-missing-hub-db",{"title":197,"path":198,"stem":199},"No database provider is enabled","\u002Ferrors\u002Fnuxt-auth-no-database-provider","6.errors\u002Fnuxt-auth-no-database-provider",{"title":201,"path":202,"stem":203},"Auth schema generation failed","\u002Ferrors\u002Fnuxt-auth-schema-generation-failed","6.errors\u002Fnuxt-auth-schema-generation-failed",{"title":205,"path":206,"stem":207},"Custom session storage is missing","\u002Ferrors\u002Fnuxt-auth-schema-storage-required","6.errors\u002Fnuxt-auth-schema-storage-required",{"title":209,"path":210,"stem":211},"Secondary storage in client-only mode","\u002Ferrors\u002Fnuxt-auth-storage-client-only","6.errors\u002Fnuxt-auth-storage-client-only",{"title":213,"path":214,"stem":215},"Unsupported database dialect","\u002Ferrors\u002Fnuxt-auth-unsupported-dialect","6.errors\u002Fnuxt-auth-unsupported-dialect",{"id":217,"title":13,"body":218,"description":881,"extension":882,"links":883,"meta":884,"navigation":885,"path":14,"seo":886,"stem":15,"__hash__":887},"docs\u002F1.getting-started\u002F1.installation.md",{"type":219,"value":220,"toc":871},"minimark",[221,298,302,307,373,377,782,786,789,810,814,839,850,867],[222,223,224],"code-collapse",{},[225,226,232],"pre",{"className":227,"code":228,"filename":229,"language":230,"meta":231,"style":231},"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","",[233,234,235,243,250,256,262,268,274,280,286,292],"code",{"__ignoreMap":231},[236,237,240],"span",{"class":238,"line":239},"line",1,[236,241,242],{},"Install @nuxtjs\u002Fbetter-auth in my Nuxt app.\n",[236,244,246],{"class":238,"line":245},2,[236,247,249],{"emptyLinePlaceholder":248},true,"\n",[236,251,253],{"class":238,"line":252},3,[236,254,255],{},"- Read the raw installation documentation first: https:\u002F\u002Fbetter-auth.nuxt.dev\u002Fraw\u002Fgetting-started\u002Finstallation.md\n",[236,257,259],{"class":238,"line":258},4,[236,260,261],{},"- Run `npx nuxi module add @nuxtjs\u002Fbetter-auth`\n",[236,263,265],{"class":238,"line":264},5,[236,266,267],{},"- 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",[236,269,271],{"class":238,"line":270},6,[236,272,273],{},"- Set `NUXT_PUBLIC_SITE_URL` for Cloudflare Workers, custom domains, and production hosts without a supported platform URL variable\n",[236,275,277],{"class":238,"line":276},7,[236,278,279],{},"- Create `server\u002Fauth.config.ts` using `defineServerAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n",[236,281,283],{"class":238,"line":282},8,[236,284,285],{},"- Create `app\u002Fauth.config.ts` using `defineClientAuth` from `@nuxtjs\u002Fbetter-auth\u002Fconfig`\n",[236,287,289],{"class":238,"line":288},9,[236,290,291],{},"- The module auto-injects `secret` and `baseURL` — do not configure them manually\n",[236,293,295],{"class":238,"line":294},10,[236,296,297],{},"- In `defineServerAuth`, use the app config callback's `requestOrigin` when Better Auth needs the current request host, such as `trustedOrigins`\n",[299,300,301],"p",{},"Use this page when you want the full install checklist rather than the shorter quickstart.",[303,304,306],"h2",{"id":305},"prerequisites","Prerequisites",[308,309,310,332,346,349,363,366],"ul",{},[311,312,313,314,323,324,327,328,331],"li",{},"Nuxt 4.0 or newer. On Nuxt 4.6 and newer, the module's server code is built on ",[315,316,320],"a",{"href":317,"rel":318},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fserver-imports",[319],"nofollow",[233,321,322],{},"nuxt\u002Fserver"," when the app runs Nitro v3 or a ",[233,325,326],{},"server.builder"," other than Nitro. Apps on ",[233,329,330],{},"nitropack"," v2 keep the h3 v1 runtime.",[311,333,334,335,338,339,342,343],{},"Node.js ",[233,336,337],{},"^22.19.0",", ",[233,340,341],{},"^24.11.0",", or ",[233,344,345],{},">=26.0.0",[311,347,348],{},"A Better Auth 1.x version that satisfies this package's peer dependency range",[311,350,351,352,355,356,359,360],{},"NuxtHub 0.10.5 or newer if you plan to use the optional ",[315,353,354],{"href":122},"NuxtHub integration",", plus the Better Auth CLI package ",[233,357,358],{},"auth"," on the same version as ",[233,361,362],{},"better-auth",[311,364,365],{},"a package manager configured for your app",[311,367,368,369,372],{},"a local ",[233,370,371],{},".env"," file or deployment environment variable system",[303,374,376],{"id":375},"add-to-project","Add to project",[378,379,380,385,411,415,446,452,461,464,476,485,495,501,510,513,516,536,556,559,568,575,599,608,621,625,644,647,667,670,746],"steps",{},[381,382,384],"h3",{"id":383},"install-the-module","Install the module",[225,386,390],{"className":387,"code":388,"language":389,"meta":231,"style":231},"language-bash shiki shiki-themes one-light synthwave-84 synthwave-84","npx nuxi module add @nuxtjs\u002Fbetter-auth\n","bash",[233,391,392],{"__ignoreMap":231},[236,393,394,398,402,405,408],{"class":238,"line":239},[236,395,397],{"class":396},"siqUp","npx",[236,399,401],{"class":400},"sI3kV"," nuxi",[236,403,404],{"class":400}," module",[236,406,407],{"class":400}," add",[236,409,410],{"class":400}," @nuxtjs\u002Fbetter-auth\n",[381,412,414],{"id":413},"set-environment-variables","Set environment variables",[416,417,418,419,422,423,425,426,429,430,433,434,338,436,342,439,442,443,445],"tip",{"icon":11},"When you install the module with ",[233,420,421],{},"nuxi module add",", it prompts you to generate a secret and can append it to your ",[233,424,371],{},": ",[233,427,428],{},"NUXT_APP_SECRET"," on Nuxt 4.6+, ",[233,431,432],{},"NUXT_BETTER_AUTH_SECRET"," on older versions. The prompt is skipped when ",[233,435,432],{},[233,437,438],{},"BETTER_AUTH_SECRET",[233,440,441],{},"BETTER_AUTH_SECRETS"," is already configured, or on Nuxt 4.6+ when ",[233,444,428],{}," is. In CI\u002Ftest environments it generates the secret without asking.",[299,447,448,449,451],{},"Add these environment variables to ",[233,450,371],{},":",[453,454,455],"ol",{},[311,456,457],{},[458,459,460],"strong",{},"Secret Key",[299,462,463],{},"The secret encrypts and hashes sensitive data. Must be at least 32 characters with high entropy.",[299,465,466,467,472,473,451],{},"On Nuxt 4.6 and newer, set Nuxt's ",[315,468,471],{"href":469,"rel":470},"https:\u002F\u002Fnuxt.com\u002Fdocs\u002Fguide\u002Fgoing-further\u002Fruntime-config#application-secret",[319],"application secret",". When no auth secret is configured, the module derives one from it with ",[233,474,475],{},"deriveSecret('better-auth:secret')",[225,477,479],{"className":227,"code":478,"filename":371,"language":230,"meta":231,"style":231},"NUXT_APP_SECRET=\n",[233,480,481],{"__ignoreMap":231},[236,482,483],{"class":238,"line":239},[236,484,478],{},[299,486,487,488,491,492,494],{},"In development, Nuxt generates an ",[233,489,490],{},"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 ",[233,493,428],{},".",[299,496,497,498,500],{},"On older Nuxt versions, or to keep a dedicated auth secret, set ",[233,499,432],{}," instead:",[225,502,504],{"className":227,"code":503,"filename":371,"language":230,"meta":231,"style":231},"NUXT_BETTER_AUTH_SECRET=\n",[233,505,506],{"__ignoreMap":231},[236,507,508],{"class":238,"line":239},[236,509,503],{},[511,512],"generate-secret",{},[299,514,515],{},"Or generate via terminal:",[225,517,519],{"className":387,"code":518,"language":389,"meta":231,"style":231},"openssl rand -base64 32\n",[233,520,521],{"__ignoreMap":231},[236,522,523,526,529,533],{"class":238,"line":239},[236,524,525],{"class":396},"openssl",[236,527,528],{"class":400}," rand",[236,530,532],{"class":531},"s3ZNE"," -base64",[236,534,535],{"class":531}," 32\n",[416,537,538,338,540,338,542,544,545,548,549,552,553,555],{},[233,539,432],{},[233,541,438],{},[233,543,441],{},", and ",[233,546,547],{},"secrets"," in ",[233,550,551],{},"defineServerAuth"," always take precedence over ",[233,554,428],{},", 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.",[299,557,558],{},"For non-destructive rotation, use Better Auth's versioned environment variable instead:",[225,560,562],{"className":227,"code":561,"filename":371,"language":230,"meta":231,"style":231},"BETTER_AUTH_SECRETS=2:current-secret-must-be-at-least-32-characters,1:previous-secret-must-be-at-least-32-characters\n",[233,563,564],{"__ignoreMap":231},[236,565,566],{"class":238,"line":239},[236,567,561],{},[453,569,570],{"start":245},[311,571,572],{},[458,573,574],{},"Base URL",[299,576,577,578,581,582,586,587,590,591,594,595,598],{},"Set ",[233,579,580],{},"NUXT_PUBLIC_SITE_URL"," for ",[583,584],"brand-badge",{"name":585},"cloudflare"," Workers, custom domains, and production hosts without a supported platform URL variable. For platform domains, the module can use ",[233,588,589],{},"VERCEL_URL"," (Vercel), ",[233,592,593],{},"CF_PAGES_URL"," (Cloudflare Pages), or ",[233,596,597],{},"URL"," (Netlify) when available at runtime.",[225,600,602],{"className":227,"code":601,"filename":371,"language":230,"meta":231,"style":231},"NUXT_PUBLIC_SITE_URL=https:\u002F\u002Fyour-domain.com\n",[233,603,604],{"__ignoreMap":231},[236,605,606],{"class":238,"line":239},[236,607,601],{},[299,609,610,611,613,614,616,617,620],{},"Cloudflare Workers does not supply ",[233,612,593],{},". Configure ",[233,615,580],{}," in the Worker's runtime variables, including for ",[233,618,619],{},"workers.dev"," deployments. Without an explicit or supported platform URL, production auth initialization fails.",[381,622,624],{"id":623},"create-configuration-files","Create configuration files",[416,626,627,628,631,632,635,636,639,640,643],{"icon":11},"During module install, ",[233,629,630],{},"server\u002Fauth.config.ts"," and ",[233,633,634],{},"\u003CsrcDir>\u002Fauth.config.ts"," are scaffolded if missing. The client config is placed in your ",[233,637,638],{},"srcDir"," (e.g., ",[233,641,642],{},"app\u002F"," or project root).",[299,645,646],{},"The module requires two configuration files:",[453,648,649,656],{},[311,650,651,425,654],{},[458,652,653],{},"Server Configuration",[233,655,630],{},[311,657,658,425,661,639,663,666],{},[458,659,660],{},"Client Configuration",[233,662,634],{},[233,664,665],{},"app\u002Fauth.config.ts",")",[299,668,669],{},"Create these files with the following content:",[225,671,675],{"className":672,"code":673,"filename":630,"language":674,"meta":231,"style":231},"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",[233,676,677,700,704,720,741],{"__ignoreMap":231},[236,678,679,683,687,690,693,696],{"class":238,"line":239},[236,680,682],{"class":681},"sqe1H","import",[236,684,686],{"class":685},"s17Py"," { ",[236,688,551],{"class":689},"sYvLG",[236,691,692],{"class":685}," } ",[236,694,695],{"class":681},"from",[236,697,699],{"class":698},"sPAZv"," '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n",[236,701,702],{"class":238,"line":245},[236,703,249],{"emptyLinePlaceholder":248},[236,705,706,709,713,717],{"class":238,"line":252},[236,707,708],{"class":681},"export",[236,710,712],{"class":711},"sKg8T"," default",[236,714,716],{"class":715},"sfT9l"," defineServerAuth",[236,718,719],{"class":685},"({\n",[236,721,722,725,728,730,733,735,738],{"class":238,"line":258},[236,723,724],{"class":689},"  emailAndPassword",[236,726,451],{"class":727},"sVnqq",[236,729,686],{"class":685},[236,731,732],{"class":689},"enabled",[236,734,451],{"class":727},[236,736,737],{"class":531}," true",[236,739,740],{"class":685}," }\n",[236,742,743],{"class":238,"line":264},[236,744,745],{"class":685},"})\n",[225,747,749],{"className":672,"code":748,"filename":665,"language":674,"meta":231,"style":231},"import { defineClientAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineClientAuth({})\n",[233,750,751,766,770],{"__ignoreMap":231},[236,752,753,755,757,760,762,764],{"class":238,"line":239},[236,754,682],{"class":681},[236,756,686],{"class":685},[236,758,759],{"class":689},"defineClientAuth",[236,761,692],{"class":685},[236,763,695],{"class":681},[236,765,699],{"class":698},[236,767,768],{"class":238,"line":245},[236,769,249],{"emptyLinePlaceholder":248},[236,771,772,774,776,779],{"class":238,"line":252},[236,773,708],{"class":681},[236,775,712],{"class":711},[236,777,778],{"class":715}," defineClientAuth",[236,780,781],{"class":685},"({})\n",[303,783,785],{"id":784},"verify-the-installation","Verify the installation",[299,787,788],{},"Confirm all of the following:",[308,790,791,794,799,807],{},[311,792,793],{},"Nuxt starts without missing-config errors",[311,795,796,798],{},[233,797,630],{}," exists",[311,800,801,803,804,806],{},[233,802,665],{}," or your ",[233,805,638],{}," equivalent exists",[311,808,809],{},"a singular or versioned auth secret is available at runtime",[303,811,813],{"id":812},"next-steps","Next steps",[308,815,816,823,829],{},[311,817,818,819,822],{},"Continue with ",[315,820,821],{"href":19},"configuration"," to set module options and route protection.",[311,824,818,825,828],{},[315,826,827],{"href":24},"client setup"," to wire sign-in and sign-out flows.",[311,830,831,832,835,836,494],{},"If you need durable persistence, pick either ",[583,833],{"name":834,"to":122},"nuxthub"," integration or ",[315,837,838],{"href":88},"custom database",[840,841,842,845,846,849],"callout",{"icon":36,"to":122},[458,843,844],{},"Need database persistence?"," See ",[583,847],{"name":834,":unlinked":848},"true"," Integration for auto-generated schemas and full database support.",[840,851,853,856,857,338,860,342,863,866],{"icon":852,"to":88},"i-lucide-hard-drive",[458,854,855],{},"Bring your own database?"," Use ",[583,858],{"name":859,":unlinked":848},"drizzle",[583,861],{"name":862,":unlinked":848},"prisma",[583,864],{"name":865,":unlinked":848},"kysely"," adapters with any database.",[868,869,870],"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":231,"searchDepth":245,"depth":245,"links":872},[873,874,879,880],{"id":305,"depth":245,"text":306},{"id":375,"depth":245,"text":376,"children":875},[876,877,878],{"id":383,"depth":252,"text":384},{"id":413,"depth":252,"text":414},{"id":623,"depth":252,"text":624},{"id":784,"depth":245,"text":785},{"id":812,"depth":245,"text":813},"Learn how to add Nuxt Better Auth to your Nuxt project.","md",null,{},{"icon":16},{"title":13,"description":881},"xNVjncEhQDR3y_oIBxCgiYA40A2pLtZcNNA-kNAZa9s",[889,891],{"title":10,"path":6,"stem":7,"description":890,"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":892,"icon":21,"children":-1},"Configure the module options and your Better Auth server instance.",1792532577785]