[{"data":1,"prerenderedAt":479},["ShallowReactive",2],{"navigation_docs":3,"landing":152},[4,42,68,110,131],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"Getting Started","/getting-started","1.getting-started/0.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","/getting-started/installation","1.getting-started/1.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","/getting-started/configuration","1.getting-started/2.configuration","i-lucide-settings",{"title":23,"path":24,"stem":25,"icon":26},"Client Setup","/getting-started/client-setup","1.getting-started/3.client-setup","i-lucide-monitor",{"title":28,"path":29,"stem":30,"icon":31},"Type Augmentation","/getting-started/type-augmentation","1.getting-started/4.type-augmentation","i-lucide-type",{"title":33,"path":34,"stem":35,"icon":36},"Schema Generation (NuxtHub)","/getting-started/schema-generation","1.getting-started/5.schema-generation","i-lucide-database",{"title":38,"path":39,"stem":40,"icon":41},"How It Works","/getting-started/how-it-works","1.getting-started/6.how-it-works","i-lucide-workflow",{"title":43,"path":44,"stem":45,"children":46,"page":67},"Core Concepts","/core-concepts","2.core-concepts",[47,51,55,59,63],{"title":48,"path":49,"stem":50},"serverAuth()","/core-concepts/server-auth","2.core-concepts/1.server-auth",{"title":52,"path":53,"stem":54},"Sessions","/core-concepts/sessions","2.core-concepts/2.sessions",{"title":56,"path":57,"stem":58},"Route Protection","/core-concepts/route-protection","2.core-concepts/3.route-protection",{"title":60,"path":61,"stem":62},"Auto‑Imports and Aliases","/core-concepts/auto-imports-aliases","2.core-concepts/4.auto-imports-aliases",{"title":64,"path":65,"stem":66},"Security & Caveats","/core-concepts/security-caveats","2.core-concepts/5.security-caveats",false,{"title":69,"path":70,"stem":71,"children":72,"page":67},"Guides","/guides","3.guides",[73,77,81,85,89,94,98,102,106],{"title":74,"path":75,"stem":76},"Role‑Based Access","/guides/role-based-access","3.guides/1.role-based-access",{"title":78,"path":79,"stem":80},"OAuth Providers","/guides/oauth-providers","3.guides/2.oauth-providers",{"title":82,"path":83,"stem":84},"Custom Database","/guides/custom-database","3.guides/3.custom-database",{"title":86,"path":87,"stem":88},"Database-less Mode","/guides/database-less-mode","3.guides/4.database-less-mode",{"title":90,"path":91,"stem":92,"icon":93},"External Auth Backend","/guides/external-auth-backend","3.guides/5.external-auth-backend","i-lucide-server",{"title":95,"path":96,"stem":97},"Migrating from nuxt-auth-utils","/guides/migrate-from-nuxt-auth-utils","3.guides/6.migrate-from-nuxt-auth-utils",{"title":99,"path":100,"stem":101},"Two-Factor Authentication (TOTP + Backup Codes)","/guides/two-factor-auth","3.guides/7.two-factor-auth",{"title":103,"path":104,"stem":105},"Testing","/guides/testing","3.guides/8.testing",{"title":107,"path":108,"stem":109},"Production Deployment","/guides/production-deployment","3.guides/9.production-deployment",{"title":111,"path":112,"stem":113,"children":114,"page":67},"Integrations","/integrations","4.integrations",[115,119,123,127],{"title":116,"path":117,"stem":118},"NuxtHub","/integrations/nuxthub","4.integrations/1.nuxthub",{"title":120,"path":121,"stem":122},"DevTools","/integrations/devtools","4.integrations/2.devtools",{"title":124,"path":125,"stem":126},"Convex","/integrations/convex","4.integrations/3.convex",{"title":128,"path":129,"stem":130},"i18n","/integrations/i18n","4.integrations/4.i18n",{"title":132,"path":133,"stem":134,"children":135,"page":67},"API Reference","/api","5.api",[136,140,144,148],{"title":137,"path":138,"stem":139},"Composables","/api/composables","5.api/1.composables",{"title":141,"path":142,"stem":143},"Server Utilities","/api/server-utils","5.api/2.server-utils",{"title":145,"path":146,"stem":147},"Components","/api/components","5.api/3.components",{"title":149,"path":150,"stem":151},"Types","/api/types","5.api/4.types",{"id":153,"title":154,"body":155,"description":472,"extension":473,"meta":474,"navigation":67,"path":475,"seo":476,"stem":477,"__hash__":478},"landing/index.md","Nuxt Better Auth",{"type":156,"value":157,"toc":458},"minimark",[158,170,175,178,205,217,221,292,296,335,339,344,372,376,401,405,435,439],[159,160,161,162,169],"p",{},"Nuxt Better Auth is a Nuxt 4 module that wraps ",[163,164,168],"a",{"href":165,"rel":166},"https://www.better-auth.com/",[167],"nofollow","Better Auth"," with Nuxt-native configuration, route protection, SSR-safe session access, and optional NuxtHub schema generation.",[171,172,174],"h2",{"id":173},"start-here","Start here",[159,176,177],{},"Use the docs in this order if you are setting up the module for the first time:",[179,180,181,187,191,195,200],"ol",{},[182,183,184],"li",{},[163,185,186],{"href":6},"Quickstart",[182,188,189],{},[163,190,13],{"href":14},[182,192,193],{},[163,194,18],{"href":19},[182,196,197],{},[163,198,199],{"href":24},"Client setup",[182,201,202],{},[163,203,204],{"href":57},"Route protection",[159,206,207,208,212,213,216],{},"You should finish that path with a working ",[209,210,211],"code",{},"/api/auth/*"," backend, a client config, and a login flow that can read session state through ",[209,214,215],{},"useUserSession()",".",[171,218,220],{"id":219},"choose-the-right-setup","Choose the right setup",[222,223,224,236],"table",{},[225,226,227],"thead",{},[228,229,230,234],"tr",{},[231,232,233],"th",{},"If you want to...",[231,235,174],{},[237,238,239,249,259,269,279],"tbody",{},[228,240,241,245],{},[242,243,244],"td",{},"Get a database-backed setup running quickly",[242,246,247],{},[163,248,116],{"href":117},[228,250,251,254],{},[242,252,253],{},"Plug Better Auth into your own database stack",[242,255,256],{},[163,257,258],{"href":83},"Custom database",[228,260,261,264],{},[242,262,263],{},"Reuse an external Better Auth server",[242,265,266],{},[163,267,268],{"href":91},"External auth backend",[228,270,271,274],{},[242,272,273],{},"Avoid a database and accept stateless session tradeoffs",[242,275,276],{},[163,277,278],{"href":87},"Database-less mode",[228,280,281,287],{},[242,282,283,284],{},"Migrate from ",[209,285,286],{},"nuxt-auth-utils",[242,288,289],{},[163,290,291],{"href":96},"Migration guide",[171,293,295],{"id":294},"what-the-module-adds-on-top-of-better-auth","What the module adds on top of Better Auth",[297,298,299,309,312,319,322,332],"ul",{},[182,300,301,304,305,308],{},[209,302,303],{},"server/auth.config.ts"," and ",[209,306,307],{},"app/auth.config.ts"," helpers",[182,310,311],{},"auto-imported client and server auth utilities",[182,313,314,315,318],{},"route protection through ",[209,316,317],{},"routeRules"," and page meta",[182,320,321],{},"SSR-aware session hydration",[182,323,324,325,304,328,331],{},"typed ",[209,326,327],{},"AuthUser",[209,329,330],{},"AuthSession"," inference from your config",[182,333,334],{},"optional NuxtHub database and schema integration",[171,336,338],{"id":337},"documentation-map","Documentation map",[340,341,343],"h3",{"id":342},"getting-started","Getting started",[297,345,346,350,354,358,362,367],{},[182,347,348],{},[163,349,186],{"href":6},[182,351,352],{},[163,353,13],{"href":14},[182,355,356],{},[163,357,18],{"href":19},[182,359,360],{},[163,361,199],{"href":24},[182,363,364],{},[163,365,366],{"href":29},"Type augmentation",[182,368,369],{},[163,370,371],{"href":34},"Schema generation",[340,373,375],{"id":374},"core-concepts","Core concepts",[297,377,378,383,387,391,396],{},[182,379,380],{},[163,381,382],{"href":49},"Server auth",[182,384,385],{},[163,386,52],{"href":53},[182,388,389],{},[163,390,204],{"href":57},[182,392,393],{},[163,394,395],{"href":61},"Auto-imports and aliases",[182,397,398],{},[163,399,400],{"href":65},"Security and caveats",[340,402,404],{"id":403},"guides-and-integrations","Guides and integrations",[297,406,407,412,417,422,427,431],{},[182,408,409],{},[163,410,411],{"href":75},"Role-based access",[182,413,414],{},[163,415,416],{"href":79},"OAuth providers",[182,418,419],{},[163,420,421],{"href":100},"Two-factor authentication",[182,423,424],{},[163,425,426],{"href":108},"Production deployment",[182,428,429],{},[163,430,116],{"href":117},[182,432,433],{},[163,434,128],{"href":129},[340,436,438],{"id":437},"api-reference","API reference",[297,440,441,445,450,454],{},[182,442,443],{},[163,444,137],{"href":138},[182,446,447],{},[163,448,449],{"href":142},"Server utilities",[182,451,452],{},[163,453,145],{"href":146},[182,455,456],{},[163,457,149],{"href":150},{"title":459,"searchDepth":460,"depth":460,"links":461},"",2,[462,463,464,465],{"id":173,"depth":460,"text":174},{"id":219,"depth":460,"text":220},{"id":294,"depth":460,"text":295},{"id":337,"depth":460,"text":338,"children":466},[467,469,470,471],{"id":342,"depth":468,"text":343},3,{"id":374,"depth":468,"text":375},{"id":403,"depth":468,"text":404},{"id":437,"depth":468,"text":438},"Seamless Better Auth integration for Nuxt with automatic route protection, session management, and role-based access control.","md",{},"/",{"title":154,"description":472},"index","dno4wHe_RxHSc17hiSuNFrbGUbQ0s5dtyGRA_FH8cxc",1777450758070]