[{"data":1,"prerenderedAt":477},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-installation":129,"-getting-started-installation-surround":472},[4,34,63,80,101,110],{"title":5,"path":6,"stem":7,"children":8,"page":33},"Getting Started","/getting-started","1.getting-started",[9,13,17,21,25,29],{"title":10,"path":11,"stem":12},"Quickstart","/getting-started/quickstart","1.getting-started/0.quickstart",{"title":14,"path":15,"stem":16},"Installation","/getting-started/installation","1.getting-started/1.installation",{"title":18,"path":19,"stem":20},"Server Configuration","/getting-started/configuration","1.getting-started/2.configuration",{"title":22,"path":23,"stem":24},"Client Setup","/getting-started/client-setup","1.getting-started/3.client-setup",{"title":26,"path":27,"stem":28},"Type Augmentation","/getting-started/type-augmentation","1.getting-started/4.type-augmentation",{"title":30,"path":31,"stem":32},"Schema Generation","/getting-started/schema-generation","1.getting-started/5.schema-generation",false,{"title":35,"path":36,"stem":37,"children":38,"page":33},"Core Concepts","/core-concepts","2.core-concepts",[39,43,47,51,55,59],{"title":40,"path":41,"stem":42},"How It Works","/core-concepts/how-it-works","2.core-concepts/0.how-it-works",{"title":44,"path":45,"stem":46},"`serverAuth()`","/core-concepts/server-auth","2.core-concepts/1.server-auth",{"title":48,"path":49,"stem":50},"Sessions","/core-concepts/sessions","2.core-concepts/2.sessions",{"title":52,"path":53,"stem":54},"Route Protection","/core-concepts/route-protection","2.core-concepts/3.route-protection",{"title":56,"path":57,"stem":58},"Auto‑Imports and Aliases","/core-concepts/auto-imports-aliases","2.core-concepts/4.auto-imports-aliases",{"title":60,"path":61,"stem":62},"Security & Caveats","/core-concepts/security-caveats","2.core-concepts/5.security-caveats",{"title":64,"path":65,"stem":66,"children":67,"page":33},"Guides","/guides","3.guides",[68,72,76],{"title":69,"path":70,"stem":71},"Role‑Based Access","/guides/role-based-access","3.guides/1.role-based-access",{"title":73,"path":74,"stem":75},"Protecting API Routes","/guides/api-protection","3.guides/2.api-protection",{"title":77,"path":78,"stem":79},"Database Dialects","/guides/custom-dialects","3.guides/3.custom-dialects",{"title":81,"path":82,"stem":83,"children":84,"page":33},"API Reference","/api","4.api",[85,89,93,97],{"title":86,"path":87,"stem":88},"Composables","/api/composables","4.api/1.composables",{"title":90,"path":91,"stem":92},"Server Utilities","/api/server-utils","4.api/2.server-utils",{"title":94,"path":95,"stem":96},"Components","/api/components","4.api/3.components",{"title":98,"path":99,"stem":100},"Types","/api/types","4.api/4.types",{"title":102,"path":103,"stem":104,"children":105,"page":33},"Troubleshooting","/troubleshooting","5.troubleshooting",[106],{"title":107,"path":108,"stem":109},"FAQ","/troubleshooting/faq","5.troubleshooting/1.faq",{"title":111,"path":112,"stem":113,"children":114},"Better Auth","/better-auth","6.better-auth",[115,117,121,125],{"title":111,"path":112,"stem":116},"6.better-auth/index",{"title":118,"path":119,"stem":120},"OAuth & Social Providers","/better-auth/oauth","6.better-auth/1.oauth",{"title":122,"path":123,"stem":124},"Plugins","/better-auth/plugins","6.better-auth/2.plugins",{"title":126,"path":127,"stem":128},"Client Plugins (Exports)","/better-auth/client-plugins","6.better-auth/3.client-plugins",{"id":130,"title":14,"body":131,"description":466,"extension":467,"links":468,"meta":469,"navigation":255,"path":15,"seo":470,"stem":16,"__hash__":471},"docs/1.getting-started/1.installation.md",{"type":132,"value":133,"toc":461},"minimark",[134,139,143,178,184,188,195,409,413,416,432,435,457],[135,136,138],"h2",{"id":137},"install","Install",[140,141,142],"p",{},"Install the module and required peer dependencies:",[144,145,150],"pre",{"className":146,"code":147,"language":148,"meta":149,"style":149},"language-bash shiki shiki-themes vitesse-light vitesse-dark vitesse-dark","pnpm add @onmax/nuxt-better-auth better-auth drizzle-orm @nuxthub/core\n","bash","",[151,152,153],"code",{"__ignoreMap":149},[154,155,158,162,166,169,172,175],"span",{"class":156,"line":157},"line",1,[154,159,161],{"class":160},"slgps","pnpm",[154,163,165],{"class":164},"sTpu4"," add",[154,167,168],{"class":164}," @onmax/nuxt-better-auth",[154,170,171],{"class":164}," better-auth",[154,173,174],{"class":164}," drizzle-orm",[154,176,177],{"class":164}," @nuxthub/core\n",[140,179,180,181,183],{},"If you want the shortest path to a working setup, follow ",[151,182,11],{},".",[135,185,187],{"id":186},"add-to-nuxt","Add to Nuxt",[140,189,190,191,194],{},"Enable NuxtHub database and register the module in ",[151,192,193],{},"nuxt.config.ts",":",[144,196,200],{"className":197,"code":198,"language":199,"meta":149,"style":149},"language-ts shiki shiki-themes vitesse-light vitesse-dark vitesse-dark","export default defineNuxtConfig({\n  modules: ['@nuxthub/core', '@onmax/nuxt-better-auth'],\n\n  // NuxtHub database must be enabled\n  hub: {\n    db: {\n      dialect: 'sqlite', // 'sqlite' | 'postgresql' | 'mysql'\n    },\n  },\n\n  runtimeConfig: {\n    betterAuthSecret: process.env.BETTER_AUTH_SECRET,\n    public: {\n      siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'http://localhost:3000',\n    },\n  },\n})\n","ts",[151,201,202,218,250,257,264,273,281,302,308,314,319,327,352,360,393,398,403],{"__ignoreMap":149},[154,203,204,208,211,214],{"class":156,"line":157},[154,205,207],{"class":206},"sMxC7","export",[154,209,210],{"class":206}," default",[154,212,213],{"class":160}," defineNuxtConfig",[154,215,217],{"class":216},"s5YmX","({\n",[154,219,221,225,228,232,235,237,240,242,245,247],{"class":156,"line":220},2,[154,222,224],{"class":223},"sekRf","  modules",[154,226,227],{"class":216},": [",[154,229,231],{"class":230},"siS8b","'",[154,233,234],{"class":164},"@nuxthub/core",[154,236,231],{"class":230},[154,238,239],{"class":216},", ",[154,241,231],{"class":230},[154,243,244],{"class":164},"@onmax/nuxt-better-auth",[154,246,231],{"class":230},[154,248,249],{"class":216},"],\n",[154,251,253],{"class":156,"line":252},3,[154,254,256],{"emptyLinePlaceholder":255},true,"\n",[154,258,260],{"class":156,"line":259},4,[154,261,263],{"class":262},"sAGVv","  // NuxtHub database must be enabled\n",[154,265,267,270],{"class":156,"line":266},5,[154,268,269],{"class":223},"  hub",[154,271,272],{"class":216},": {\n",[154,274,276,279],{"class":156,"line":275},6,[154,277,278],{"class":223},"    db",[154,280,272],{"class":216},[154,282,284,287,290,292,295,297,299],{"class":156,"line":283},7,[154,285,286],{"class":223},"      dialect",[154,288,289],{"class":216},": ",[154,291,231],{"class":230},[154,293,294],{"class":164},"sqlite",[154,296,231],{"class":230},[154,298,239],{"class":216},[154,300,301],{"class":262},"// 'sqlite' | 'postgresql' | 'mysql'\n",[154,303,305],{"class":156,"line":304},8,[154,306,307],{"class":216},"    },\n",[154,309,311],{"class":156,"line":310},9,[154,312,313],{"class":216},"  },\n",[154,315,317],{"class":156,"line":316},10,[154,318,256],{"emptyLinePlaceholder":255},[154,320,322,325],{"class":156,"line":321},11,[154,323,324],{"class":223},"  runtimeConfig",[154,326,272],{"class":216},[154,328,330,333,335,339,341,344,346,349],{"class":156,"line":329},12,[154,331,332],{"class":223},"    betterAuthSecret",[154,334,289],{"class":216},[154,336,338],{"class":337},"s6w83","process",[154,340,183],{"class":216},[154,342,343],{"class":337},"env",[154,345,183],{"class":216},[154,347,348],{"class":337},"BETTER_AUTH_SECRET",[154,350,351],{"class":216},",\n",[154,353,355,358],{"class":156,"line":354},13,[154,356,357],{"class":223},"    public",[154,359,272],{"class":216},[154,361,363,366,368,370,372,374,376,379,383,386,389,391],{"class":156,"line":362},14,[154,364,365],{"class":223},"      siteUrl",[154,367,289],{"class":216},[154,369,338],{"class":337},[154,371,183],{"class":216},[154,373,343],{"class":337},[154,375,183],{"class":216},[154,377,378],{"class":337},"NUXT_PUBLIC_SITE_URL",[154,380,382],{"class":381},"sR2V5"," ||",[154,384,385],{"class":230}," '",[154,387,388],{"class":164},"http://localhost:3000",[154,390,231],{"class":230},[154,392,351],{"class":216},[154,394,396],{"class":156,"line":395},15,[154,397,307],{"class":216},[154,399,401],{"class":156,"line":400},16,[154,402,313],{"class":216},[154,404,406],{"class":156,"line":405},17,[154,407,408],{"class":216},"})\n",[135,410,412],{"id":411},"required-config-files","Required config files",[140,414,415],{},"The module validates these files at build time:",[417,418,419,426],"ul",{},[420,421,422,425],"li",{},[151,423,424],{},"server/auth.config.ts"," (server Better Auth config)",[420,427,428,431],{},[151,429,430],{},"app/auth.client.ts"," (client factory)",[140,433,434],{},"Next:",[417,436,437,442,447,452],{},[420,438,439,440],{},"Create your server config: ",[151,441,19],{},[420,443,444,445],{},"Create your client config: ",[151,446,23],{},[420,448,449,450],{},"Add types: ",[151,451,27],{},[420,453,454,455],{},"Browse Better Auth plugins/providers: ",[151,456,112],{},[458,459,460],"style",{},"html pre.shiki code .slgps, html code.shiki .slgps{--shiki-light:#59873A;--shiki-default:#80A665;--shiki-dark:#80A665}html pre.shiki code .sTpu4, html code.shiki .sTpu4{--shiki-light:#B56959;--shiki-default:#C98A7D;--shiki-dark:#C98A7D}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 .sMxC7, html code.shiki .sMxC7{--shiki-light:#1E754F;--shiki-default:#4D9375;--shiki-dark:#4D9375}html pre.shiki code .s5YmX, html code.shiki .s5YmX{--shiki-light:#999999;--shiki-default:#666666;--shiki-dark:#666666}html pre.shiki code .sekRf, html code.shiki .sekRf{--shiki-light:#998418;--shiki-default:#B8A965;--shiki-dark:#B8A965}html pre.shiki code .siS8b, html code.shiki .siS8b{--shiki-light:#B5695977;--shiki-default:#C98A7D77;--shiki-dark:#C98A7D77}html pre.shiki code .sAGVv, html code.shiki .sAGVv{--shiki-light:#A0ADA0;--shiki-default:#758575DD;--shiki-dark:#758575DD}html pre.shiki code .s6w83, html code.shiki .s6w83{--shiki-light:#B07D48;--shiki-default:#BD976A;--shiki-dark:#BD976A}html pre.shiki code .sR2V5, html code.shiki .sR2V5{--shiki-light:#AB5959;--shiki-default:#CB7676;--shiki-dark:#CB7676}",{"title":149,"searchDepth":220,"depth":220,"links":462},[463,464,465],{"id":137,"depth":220,"text":138},{"id":186,"depth":220,"text":187},{"id":411,"depth":220,"text":412},"Get started with Nuxt Better Auth in your project.","md",null,{},{"title":14,"description":466},"e98dLdhHqj3OtUZnte-KaUkzmT9XejWug8ILTgp2GMQ",[473,475],{"title":10,"path":11,"stem":12,"description":474,"children":-1},"Minimal setup you can copy/paste.",{"title":18,"path":19,"stem":20,"description":476,"children":-1},"Create `server/auth.config.ts` with your Better Auth setup.",1765664060589]