[{"data":1,"prerenderedAt":2028},["ShallowReactive",2],{"navigation_docs":3,"-getting-started-configuration":152,"-getting-started-configuration-surround":2023},[4,42,68,110,131],{"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,81,85,89,94,98,102,106],{"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},"OAuth Providers","\u002Fguides\u002Foauth-providers","3.guides\u002F2.oauth-providers",{"title":82,"path":83,"stem":84},"Custom Database","\u002Fguides\u002Fcustom-database","3.guides\u002F3.custom-database",{"title":86,"path":87,"stem":88},"Database-less Mode","\u002Fguides\u002Fdatabase-less-mode","3.guides\u002F4.database-less-mode",{"title":90,"path":91,"stem":92,"icon":93},"External Auth Backend","\u002Fguides\u002Fexternal-auth-backend","3.guides\u002F5.external-auth-backend","i-lucide-server",{"title":95,"path":96,"stem":97},"Migrating from nuxt-auth-utils","\u002Fguides\u002Fmigrate-from-nuxt-auth-utils","3.guides\u002F6.migrate-from-nuxt-auth-utils",{"title":99,"path":100,"stem":101},"Two-Factor Authentication (TOTP + Backup Codes)","\u002Fguides\u002Ftwo-factor-auth","3.guides\u002F7.two-factor-auth",{"title":103,"path":104,"stem":105},"Testing","\u002Fguides\u002Ftesting","3.guides\u002F8.testing",{"title":107,"path":108,"stem":109},"Production Deployment","\u002Fguides\u002Fproduction-deployment","3.guides\u002F9.production-deployment",{"title":111,"path":112,"stem":113,"children":114,"page":67},"Integrations","\u002Fintegrations","4.integrations",[115,119,123,127],{"title":116,"path":117,"stem":118},"NuxtHub","\u002Fintegrations\u002Fnuxthub","4.integrations\u002F1.nuxthub",{"title":120,"path":121,"stem":122},"DevTools","\u002Fintegrations\u002Fdevtools","4.integrations\u002F2.devtools",{"title":124,"path":125,"stem":126},"Convex","\u002Fintegrations\u002Fconvex","4.integrations\u002F3.convex",{"title":128,"path":129,"stem":130},"i18n","\u002Fintegrations\u002Fi18n","4.integrations\u002F4.i18n",{"title":132,"path":133,"stem":134,"children":135,"page":67},"API Reference","\u002Fapi","5.api",[136,140,144,148],{"title":137,"path":138,"stem":139},"Composables","\u002Fapi\u002Fcomposables","5.api\u002F1.composables",{"title":141,"path":142,"stem":143},"Server Utilities","\u002Fapi\u002Fserver-utils","5.api\u002F2.server-utils",{"title":145,"path":146,"stem":147},"Components","\u002Fapi\u002Fcomponents","5.api\u002F3.components",{"title":149,"path":150,"stem":151},"Types","\u002Fapi\u002Ftypes","5.api\u002F4.types",{"id":153,"title":18,"body":154,"description":2016,"extension":2017,"links":2018,"meta":2019,"navigation":2020,"path":19,"seo":2021,"stem":20,"__hash__":2022},"docs\u002F1.getting-started\u002F2.configuration.md",{"type":155,"value":156,"toc":2002},"minimark",[157,228,244,249,485,499,753,757,760,851,856,963,969,988,994,997,1021,1025,1031,1036,1042,1162,1222,1226,1232,1339,1366,1373,1444,1461,1465,1482,1488,1492,1498,1580,1589,1595,1668,1673,1685,1697,1705,1709,1715,1730,1739,1750,1754,1758,1784,1788,1791,1802,1805,1924,1927,1998],[158,159,160],"code-collapse",{},[161,162,168],"pre",{"className":163,"code":164,"filename":165,"language":166,"meta":167,"style":167},"language-txt shiki shiki-themes one-light synthwave-84 synthwave-84","Configure @nuxtjs\u002Fbetter-auth module options and server auth.\n\n- In `nuxt.config.ts`, set `auth.redirects` (login, guest, authenticated, logout) and `auth.preserveRedirect`\n- Use `routeRules` or `nitro.routeRules` to define per-route auth: `{ auth: { only: 'user', redirectTo: '\u002Flogin' } }`\n- In `server\u002Fauth.config.ts`, use `defineServerAuth` (object or function syntax) to configure plugins and providers\n- The function syntax receives `ctx` with `runtimeConfig` and `db` (NuxtHub)\n- The module auto-injects `secret` and `baseURL` — do not set them in defineServerAuth\n- Base URL priority: runtimeConfig > request URL > platform env vars > localhost\n- Set `NUXT_PUBLIC_SITE_URL` for custom domains or deterministic OAuth callbacks\n","Prompt","txt","",[169,170,171,179,186,192,198,204,210,216,222],"code",{"__ignoreMap":167},[172,173,176],"span",{"class":174,"line":175},"line",1,[172,177,178],{},"Configure @nuxtjs\u002Fbetter-auth module options and server auth.\n",[172,180,182],{"class":174,"line":181},2,[172,183,185],{"emptyLinePlaceholder":184},true,"\n",[172,187,189],{"class":174,"line":188},3,[172,190,191],{},"- In `nuxt.config.ts`, set `auth.redirects` (login, guest, authenticated, logout) and `auth.preserveRedirect`\n",[172,193,195],{"class":174,"line":194},4,[172,196,197],{},"- Use `routeRules` or `nitro.routeRules` to define per-route auth: `{ auth: { only: 'user', redirectTo: '\u002Flogin' } }`\n",[172,199,201],{"class":174,"line":200},5,[172,202,203],{},"- In `server\u002Fauth.config.ts`, use `defineServerAuth` (object or function syntax) to configure plugins and providers\n",[172,205,207],{"class":174,"line":206},6,[172,208,209],{},"- The function syntax receives `ctx` with `runtimeConfig` and `db` (NuxtHub)\n",[172,211,213],{"class":174,"line":212},7,[172,214,215],{},"- The module auto-injects `secret` and `baseURL` — do not set them in defineServerAuth\n",[172,217,219],{"class":174,"line":218},8,[172,220,221],{},"- Base URL priority: runtimeConfig > request URL > platform env vars > localhost\n",[172,223,225],{"class":174,"line":224},9,[172,226,227],{},"- Set `NUXT_PUBLIC_SITE_URL` for custom domains or deterministic OAuth callbacks\n",[229,230,231,232,235,236,239,240,243],"p",{},"Use this page when the module is installed and you want to control runtime behavior in ",[169,233,234],{},"nuxt.config.ts",", ",[169,237,238],{},"server\u002Fauth.config.ts",", and ",[169,241,242],{},"app\u002Fauth.config.ts",".",[245,246,248],"h2",{"id":247},"module-configuration","Module Configuration",[161,250,254],{"className":251,"code":252,"filename":234,"language":253,"meta":167,"style":167},"language-ts shiki shiki-themes one-light synthwave-84 synthwave-84","export default defineNuxtConfig({\n  modules: ['@nuxtjs\u002Fbetter-auth'],\n  auth: {\n    redirects: {\n      login: '\u002Flogin',\n      guest: '\u002F',\n      \u002F\u002F authenticated: '\u002Fapp', \u002F\u002F optional\n      \u002F\u002F logout: '\u002Fgoodbye', \u002F\u002F optional\n    },\n    preserveRedirect: true,\n    redirectQueryKey: 'redirect',\n  },\n  routeRules: {\n    '\u002Fapp\u002F**': { auth: { only: 'user', redirectTo: '\u002Flogin' } },\n    '\u002Flogin': { auth: { only: 'guest', redirectTo: '\u002Fapp' } },\n  },\n})\n","ts",[169,255,256,274,294,304,313,326,338,347,354,359,373,386,392,402,440,474,479],{"__ignoreMap":167},[172,257,258,262,266,270],{"class":174,"line":175},[172,259,261],{"class":260},"sqe1H","export",[172,263,265],{"class":264},"sKg8T"," default",[172,267,269],{"class":268},"sfT9l"," defineNuxtConfig",[172,271,273],{"class":272},"s17Py","({\n",[172,275,276,280,284,287,291],{"class":174,"line":181},[172,277,279],{"class":278},"sYvLG","  modules",[172,281,283],{"class":282},"sVnqq",":",[172,285,286],{"class":272}," [",[172,288,290],{"class":289},"sPAZv","'@nuxtjs\u002Fbetter-auth'",[172,292,293],{"class":272},"],\n",[172,295,296,299,301],{"class":174,"line":188},[172,297,298],{"class":278},"  auth",[172,300,283],{"class":282},[172,302,303],{"class":272}," {\n",[172,305,306,309,311],{"class":174,"line":194},[172,307,308],{"class":278},"    redirects",[172,310,283],{"class":282},[172,312,303],{"class":272},[172,314,315,318,320,323],{"class":174,"line":200},[172,316,317],{"class":278},"      login",[172,319,283],{"class":282},[172,321,322],{"class":289}," '\u002Flogin'",[172,324,325],{"class":272},",\n",[172,327,328,331,333,336],{"class":174,"line":206},[172,329,330],{"class":278},"      guest",[172,332,283],{"class":282},[172,334,335],{"class":289}," '\u002F'",[172,337,325],{"class":272},[172,339,340,344],{"class":174,"line":212},[172,341,343],{"class":342},"st7cf","      \u002F\u002F authenticated: '\u002Fapp',",[172,345,346],{"class":342}," \u002F\u002F optional\n",[172,348,349,352],{"class":174,"line":218},[172,350,351],{"class":342},"      \u002F\u002F logout: '\u002Fgoodbye',",[172,353,346],{"class":342},[172,355,356],{"class":174,"line":224},[172,357,358],{"class":272},"    },\n",[172,360,362,365,367,371],{"class":174,"line":361},10,[172,363,364],{"class":278},"    preserveRedirect",[172,366,283],{"class":282},[172,368,370],{"class":369},"s3ZNE"," true",[172,372,325],{"class":272},[172,374,376,379,381,384],{"class":174,"line":375},11,[172,377,378],{"class":278},"    redirectQueryKey",[172,380,283],{"class":282},[172,382,383],{"class":289}," 'redirect'",[172,385,325],{"class":272},[172,387,389],{"class":174,"line":388},12,[172,390,391],{"class":272},"  },\n",[172,393,395,398,400],{"class":174,"line":394},13,[172,396,397],{"class":278},"  routeRules",[172,399,283],{"class":282},[172,401,303],{"class":272},[172,403,405,408,410,413,416,418,420,423,425,428,430,433,435,437],{"class":174,"line":404},14,[172,406,407],{"class":289},"    '\u002Fapp\u002F**'",[172,409,283],{"class":282},[172,411,412],{"class":272}," { ",[172,414,415],{"class":278},"auth",[172,417,283],{"class":282},[172,419,412],{"class":272},[172,421,422],{"class":278},"only",[172,424,283],{"class":282},[172,426,427],{"class":289}," 'user'",[172,429,235],{"class":272},[172,431,432],{"class":278},"redirectTo",[172,434,283],{"class":282},[172,436,322],{"class":289},[172,438,439],{"class":272}," } },\n",[172,441,443,446,448,450,452,454,456,458,460,463,465,467,469,472],{"class":174,"line":442},15,[172,444,445],{"class":289},"    '\u002Flogin'",[172,447,283],{"class":282},[172,449,412],{"class":272},[172,451,415],{"class":278},[172,453,283],{"class":282},[172,455,412],{"class":272},[172,457,422],{"class":278},[172,459,283],{"class":282},[172,461,462],{"class":289}," 'guest'",[172,464,235],{"class":272},[172,466,432],{"class":278},[172,468,283],{"class":282},[172,470,471],{"class":289}," '\u002Fapp'",[172,473,439],{"class":272},[172,475,477],{"class":174,"line":476},16,[172,478,391],{"class":272},[172,480,482],{"class":174,"line":481},17,[172,483,484],{"class":272},"})\n",[486,487,488,489,492,493,496,497,243],"note",{},"You can define auth route rules in either ",[169,490,491],{},"routeRules"," or ",[169,494,495],{},"nitro.routeRules",". The module supports both. If both are set, it uses ",[169,498,495],{},[500,501,502,545,557,568,624,643,657,723,733,749],"field-group",{},[503,504,507,513,519,535,538],"field",{"name":505,"type":506},"clientOnly","boolean",[229,508,509,510],{},"Default: ",[169,511,512],{},"false",[229,514,515,516,283],{},"Enable client-only mode for external auth backends. When ",[169,517,518],{},"true",[520,521,522,529,532],"ul",{},[523,524,525,526,528],"li",{},"Skips ",[169,527,238],{}," requirement",[523,530,531],{},"Skips server-side setup (API handlers, middleware, schema generation, devtools)",[523,533,534],{},"Skips secret validation",[229,536,537],{},"Use this when your Better Auth server runs on a separate backend (e.g., standalone h3\u002FNitro project).",[229,539,540,541,544],{},"See ",[542,543,90],"a",{"href":91}," guide.",[503,546,549,554],{"name":547,"type":548},"serverConfig","string",[229,550,509,551],{},[169,552,553],{},"'server\u002Fauth.config'",[229,555,556],{},"Path to the server auth config file, relative to the project root.",[503,558,560,565],{"name":559,"type":548},"clientConfig",[229,561,509,562],{},[169,563,564],{},"'app\u002Fauth.config'",[229,566,567],{},"Path to the client auth config file, relative to the project root.",[503,569,572,577,580,618],{"name":570,"type":571},"redirects","{ login?: string, guest?: string, authenticated?: string, logout?: string }",[229,573,509,574],{},[169,575,576],{},"{ login: '\u002Flogin', guest: '\u002F' }",[229,578,579],{},"Global redirect fallbacks:",[520,581,582,588,594,612],{},[523,583,584,587],{},[169,585,586],{},"login",": where to redirect unauthenticated users",[523,589,590,593],{},[169,591,592],{},"guest",": where to redirect authenticated users trying to access guest-only routes",[523,595,596,599,600,603,604,607,608,611],{},[169,597,598],{},"authenticated",": where to navigate after successful authenticated ",[169,601,602],{},"signIn"," \u002F ",[169,605,606],{},"signUp"," when no ",[169,609,610],{},"onSuccess"," callback is provided",[523,613,614,617],{},[169,615,616],{},"logout",": where to navigate after logout (no default)",[229,619,620,621,623],{},"Per-route ",[169,622,432],{}," takes precedence when set.",[503,625,627,631,634],{"name":626,"type":506},"preserveRedirect",[229,628,509,629],{},[169,630,518],{},[229,632,633],{},"When redirecting unauthenticated users to a login route, append the original requested path as a query param.",[229,635,636,637,492,640,243],{},"Configure redirect targets per-route with ",[169,638,639],{},"routeRules.auth.redirectTo",[169,641,642],{},"definePageMeta({ auth: { redirectTo } })",[503,644,646,651],{"name":645,"type":548},"redirectQueryKey",[229,647,509,648],{},[169,649,650],{},"'redirect'",[229,652,653,654,656],{},"Query param key used when ",[169,655,626],{}," is enabled.",[503,658,661,665,668],{"name":659,"type":660},"hubSecondaryStorage","boolean | 'custom'",[229,662,509,663],{},[169,664,512],{},[229,666,667],{},"Enable secondary storage for sessions, reducing database hits for session validation.",[520,669,670,696,713],{},[523,671,672,674,675,678,679,682,683,235,686,235,689,235,692,695],{},[169,673,518],{}," — Use NuxtHub KV. Requires ",[542,676,677],{"href":117},"NuxtHub Integration"," with ",[169,680,681],{},"hub: { kv: true }",". Build fails if KV is not enabled. Generated schema remains stable and keeps core auth tables (",[169,684,685],{},"user",[169,687,688],{},"account",[169,690,691],{},"session",[169,693,694],{},"verification",").",[523,697,698,701,702,705,706,709,710,712],{},[169,699,700],{},"'custom'"," — You provide your own ",[169,703,704],{},"secondaryStorage"," in ",[169,707,708],{},"defineServerAuth()"," (required; the build fails in production if missing). The module won't inject NuxtHub KV, and this mode can omit the ",[169,711,691],{}," table from generated schema.",[523,714,715,717,718,705,720,722],{},[169,716,512],{}," (default) — No secondary storage from the module. User-provided ",[169,719,704],{},[169,721,708],{}," is not overridden.",[503,724,726,730],{"name":725,"type":506},"schema.usePlural",[229,727,509,728],{},[169,729,512],{},[229,731,732],{},"Pluralize table names (user → users)",[503,734,737,742],{"name":735,"type":736},"schema.casing","'camelCase' | 'snake_case'",[229,738,509,739],{},[169,740,741],{},"camelCase",[229,743,744,745,748],{},"Column\u002Ftable name casing. Falls back to ",[169,746,747],{},"hub.db.casing"," when not specified.",[503,750,752],{"name":751,"type":548},"schema.schemaName","PostgreSQL schema namespace for generated auth tables.",[245,754,756],{"id":755},"redirect-targets-routerules-first","Redirect Targets (RouteRules-First)",[229,758,759],{},"Prefer redirect paths on route-level auth config:",[161,761,763],{"className":251,"code":762,"filename":234,"language":253,"meta":167,"style":167},"export default defineNuxtConfig({\n  routeRules: {\n    '\u002Fapp\u002F**': { auth: { only: 'user', redirectTo: '\u002Flogin' } },\n    '\u002Flogin': { auth: { only: 'guest', redirectTo: '\u002Fapp' } },\n  },\n})\n",[169,764,765,775,783,813,843,847],{"__ignoreMap":167},[172,766,767,769,771,773],{"class":174,"line":175},[172,768,261],{"class":260},[172,770,265],{"class":264},[172,772,269],{"class":268},[172,774,273],{"class":272},[172,776,777,779,781],{"class":174,"line":181},[172,778,397],{"class":278},[172,780,283],{"class":282},[172,782,303],{"class":272},[172,784,785,787,789,791,793,795,797,799,801,803,805,807,809,811],{"class":174,"line":188},[172,786,407],{"class":289},[172,788,283],{"class":282},[172,790,412],{"class":272},[172,792,415],{"class":278},[172,794,283],{"class":282},[172,796,412],{"class":272},[172,798,422],{"class":278},[172,800,283],{"class":282},[172,802,427],{"class":289},[172,804,235],{"class":272},[172,806,432],{"class":278},[172,808,283],{"class":282},[172,810,322],{"class":289},[172,812,439],{"class":272},[172,814,815,817,819,821,823,825,827,829,831,833,835,837,839,841],{"class":174,"line":194},[172,816,445],{"class":289},[172,818,283],{"class":282},[172,820,412],{"class":272},[172,822,415],{"class":278},[172,824,283],{"class":282},[172,826,412],{"class":272},[172,828,422],{"class":278},[172,830,283],{"class":282},[172,832,462],{"class":289},[172,834,235],{"class":272},[172,836,432],{"class":278},[172,838,283],{"class":282},[172,840,471],{"class":289},[172,842,439],{"class":272},[172,844,845],{"class":174,"line":200},[172,846,391],{"class":272},[172,848,849],{"class":174,"line":206},[172,850,484],{"class":272},[229,852,853,854,283],{},"You can use the same auth route rules under ",[169,855,495],{},[161,857,859],{"className":251,"code":858,"filename":234,"language":253,"meta":167,"style":167},"export default defineNuxtConfig({\n  nitro: {\n    routeRules: {\n      '\u002Fapp\u002F**': { auth: { only: 'user', redirectTo: '\u002Flogin' } },\n      '\u002Flogin': { auth: { only: 'guest', redirectTo: '\u002Fapp' } },\n    },\n  },\n})\n",[169,860,861,871,880,889,920,951,955,959],{"__ignoreMap":167},[172,862,863,865,867,869],{"class":174,"line":175},[172,864,261],{"class":260},[172,866,265],{"class":264},[172,868,269],{"class":268},[172,870,273],{"class":272},[172,872,873,876,878],{"class":174,"line":181},[172,874,875],{"class":278},"  nitro",[172,877,283],{"class":282},[172,879,303],{"class":272},[172,881,882,885,887],{"class":174,"line":188},[172,883,884],{"class":278},"    routeRules",[172,886,283],{"class":282},[172,888,303],{"class":272},[172,890,891,894,896,898,900,902,904,906,908,910,912,914,916,918],{"class":174,"line":194},[172,892,893],{"class":289},"      '\u002Fapp\u002F**'",[172,895,283],{"class":282},[172,897,412],{"class":272},[172,899,415],{"class":278},[172,901,283],{"class":282},[172,903,412],{"class":272},[172,905,422],{"class":278},[172,907,283],{"class":282},[172,909,427],{"class":289},[172,911,235],{"class":272},[172,913,432],{"class":278},[172,915,283],{"class":282},[172,917,322],{"class":289},[172,919,439],{"class":272},[172,921,922,925,927,929,931,933,935,937,939,941,943,945,947,949],{"class":174,"line":200},[172,923,924],{"class":289},"      '\u002Flogin'",[172,926,283],{"class":282},[172,928,412],{"class":272},[172,930,415],{"class":278},[172,932,283],{"class":282},[172,934,412],{"class":272},[172,936,422],{"class":278},[172,938,283],{"class":282},[172,940,462],{"class":289},[172,942,235],{"class":272},[172,944,432],{"class":278},[172,946,283],{"class":282},[172,948,471],{"class":289},[172,950,439],{"class":272},[172,952,953],{"class":174,"line":206},[172,954,358],{"class":272},[172,956,957],{"class":174,"line":212},[172,958,391],{"class":272},[172,960,961],{"class":174,"line":218},[172,962,484],{"class":272},[229,964,965,966,968],{},"If ",[169,967,432],{}," is omitted, shorthand fallbacks apply:",[520,970,971,980],{},[523,972,973,976,977],{},[169,974,975],{},"auth: 'user'"," falls back to ",[169,978,979],{},"\u002Flogin",[523,981,982,976,985],{},[169,983,984],{},"auth: 'guest'",[169,986,987],{},"\u002F",[229,989,990,991,243],{},"If you want global defaults for those fallbacks, use ",[169,992,993],{},"auth.redirects",[229,995,996],{},"Default post-auth navigation:",[520,998,999,1012],{},[523,1000,1001,1004,1005,603,1007,1009,1010,243],{},[169,1002,1003],{},"auth.redirects.authenticated"," is used when ",[169,1006,602],{},[169,1008,606],{}," complete with an authenticated session and no explicit ",[169,1011,610],{},[523,1013,1014,1015,1018,1019,243],{},"If a preserved redirect query param is present and safe (",[169,1016,1017],{},"?redirect=","), it takes precedence over ",[169,1020,1003],{},[245,1022,1024],{"id":1023},"server-configuration","Server Configuration",[229,1026,1027,1028,1030],{},"Define your authentication logic in ",[169,1029,238],{},", including plugins, providers, and settings.",[1032,1033,1035],"h3",{"id":1034},"defineserverauth","defineServerAuth",[229,1037,1038,1039,1041],{},"Use the ",[169,1040,1035],{}," helper to ensure type safety and access context. It accepts an object or function syntax.",[161,1043,1045],{"className":251,"code":1044,"filename":238,"language":253,"meta":167,"style":167},"import { defineServerAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\n\u002F\u002F Object syntax (simplest)\nexport default defineServerAuth({\n  emailAndPassword: { enabled: true }\n})\n\n\u002F\u002F Function syntax (access context)\nexport default defineServerAuth((ctx) => ({\n  emailAndPassword: { enabled: true }\n}))\n",[169,1046,1047,1065,1069,1074,1085,1104,1108,1112,1117,1141,1157],{"__ignoreMap":167},[172,1048,1049,1052,1054,1056,1059,1062],{"class":174,"line":175},[172,1050,1051],{"class":260},"import",[172,1053,412],{"class":272},[172,1055,1035],{"class":278},[172,1057,1058],{"class":272}," } ",[172,1060,1061],{"class":260},"from",[172,1063,1064],{"class":289}," '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n",[172,1066,1067],{"class":174,"line":181},[172,1068,185],{"emptyLinePlaceholder":184},[172,1070,1071],{"class":174,"line":188},[172,1072,1073],{"class":342},"\u002F\u002F Object syntax (simplest)\n",[172,1075,1076,1078,1080,1083],{"class":174,"line":194},[172,1077,261],{"class":260},[172,1079,265],{"class":264},[172,1081,1082],{"class":268}," defineServerAuth",[172,1084,273],{"class":272},[172,1086,1087,1090,1092,1094,1097,1099,1101],{"class":174,"line":200},[172,1088,1089],{"class":278},"  emailAndPassword",[172,1091,283],{"class":282},[172,1093,412],{"class":272},[172,1095,1096],{"class":278},"enabled",[172,1098,283],{"class":282},[172,1100,370],{"class":369},[172,1102,1103],{"class":272}," }\n",[172,1105,1106],{"class":174,"line":206},[172,1107,484],{"class":272},[172,1109,1110],{"class":174,"line":212},[172,1111,185],{"emptyLinePlaceholder":184},[172,1113,1114],{"class":174,"line":218},[172,1115,1116],{"class":342},"\u002F\u002F Function syntax (access context)\n",[172,1118,1119,1121,1123,1125,1128,1132,1135,1138],{"class":174,"line":224},[172,1120,261],{"class":260},[172,1122,265],{"class":264},[172,1124,1082],{"class":268},[172,1126,1127],{"class":272},"((",[172,1129,1131],{"class":1130},"sgisi","ctx",[172,1133,1134],{"class":272},") ",[172,1136,1137],{"class":260},"=>",[172,1139,1140],{"class":272}," ({\n",[172,1142,1143,1145,1147,1149,1151,1153,1155],{"class":174,"line":361},[172,1144,1089],{"class":278},[172,1146,283],{"class":282},[172,1148,412],{"class":272},[172,1150,1096],{"class":278},[172,1152,283],{"class":282},[172,1154,370],{"class":369},[172,1156,1103],{"class":272},[172,1158,1159],{"class":174,"line":375},[172,1160,1161],{"class":272},"}))\n",[486,1163,1164,1179],{},[229,1165,1166,1167,1170,1171,1174,1175,1178],{},"The module automatically injects the singular ",[169,1168,1169],{},"secret"," and ",[169,1172,1173],{},"baseURL",". Use Better Auth's ",[169,1176,1177],{},"secrets"," option only when you need versioned rotation.",[520,1180,1181,1198,1213],{},[523,1182,1183,1187,1188,1190,1191,1194,1195],{},[1184,1185,1186],"strong",{},"Secret",": Priority: ",[169,1189,234],{}," runtimeConfig > ",[169,1192,1193],{},"NUXT_BETTER_AUTH_SECRET"," > ",[169,1196,1197],{},"BETTER_AUTH_SECRET",[523,1199,1200,1203,1204,705,1206,1208,1209,1212],{},[1184,1201,1202],{},"Versioned secrets",": Set ",[169,1205,1177],{},[169,1207,1035],{}," or use ",[169,1210,1211],{},"BETTER_AUTH_SECRETS",". When present, the singular secret is a legacy decryption fallback.",[523,1214,1215,1218,1219],{},[1184,1216,1217],{},"Base URL",": The module auto-detects the base URL on Vercel\u002FCloudflare\u002FNetlify. For other platforms, set ",[169,1220,1221],{},"NUXT_PUBLIC_SITE_URL",[1032,1223,1225],{"id":1224},"context-options","Context Options",[229,1227,1228,1229,1231],{},"When using the function syntax, ",[169,1230,1035],{}," callback receives a context object with useful properties:",[161,1233,1235],{"className":251,"code":1234,"filename":238,"language":253,"meta":167,"style":167},"import { defineServerAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineServerAuth((ctx) => ({\n  emailAndPassword: { enabled: true },\n\n  appName: ctx.runtimeConfig.public.siteUrl ? 'Better Auth App' : 'Better Auth',\n}))\n",[169,1236,1237,1251,1255,1273,1290,1294,1335],{"__ignoreMap":167},[172,1238,1239,1241,1243,1245,1247,1249],{"class":174,"line":175},[172,1240,1051],{"class":260},[172,1242,412],{"class":272},[172,1244,1035],{"class":278},[172,1246,1058],{"class":272},[172,1248,1061],{"class":260},[172,1250,1064],{"class":289},[172,1252,1253],{"class":174,"line":181},[172,1254,185],{"emptyLinePlaceholder":184},[172,1256,1257,1259,1261,1263,1265,1267,1269,1271],{"class":174,"line":188},[172,1258,261],{"class":260},[172,1260,265],{"class":264},[172,1262,1082],{"class":268},[172,1264,1127],{"class":272},[172,1266,1131],{"class":1130},[172,1268,1134],{"class":272},[172,1270,1137],{"class":260},[172,1272,1140],{"class":272},[172,1274,1275,1277,1279,1281,1283,1285,1287],{"class":174,"line":194},[172,1276,1089],{"class":278},[172,1278,283],{"class":282},[172,1280,412],{"class":272},[172,1282,1096],{"class":278},[172,1284,283],{"class":282},[172,1286,370],{"class":369},[172,1288,1289],{"class":272}," },\n",[172,1291,1292],{"class":174,"line":200},[172,1293,185],{"emptyLinePlaceholder":184},[172,1295,1296,1299,1301,1305,1307,1310,1312,1315,1317,1320,1324,1327,1330,1333],{"class":174,"line":206},[172,1297,1298],{"class":278},"  appName",[172,1300,283],{"class":282},[172,1302,1304],{"class":1303},"svFNh"," ctx",[172,1306,243],{"class":272},[172,1308,1309],{"class":278},"runtimeConfig",[172,1311,243],{"class":272},[172,1313,1314],{"class":278},"public",[172,1316,243],{"class":272},[172,1318,1319],{"class":278},"siteUrl",[172,1321,1323],{"class":1322},"sn-Jc"," ?",[172,1325,1326],{"class":289}," 'Better Auth App'",[172,1328,1329],{"class":1322}," :",[172,1331,1332],{"class":289}," 'Better Auth'",[172,1334,325],{"class":272},[172,1336,1337],{"class":174,"line":212},[172,1338,1161],{"class":272},[520,1340,1341,1347,1357],{},[523,1342,1343,1346],{},[169,1344,1345],{},"ctx.runtimeConfig",": Nuxt runtime config.",[523,1348,1349,1352,1353,1356],{},[169,1350,1351],{},"ctx.db",": NuxtHub database connection when NuxtHub DB is enabled. Do not set ",[169,1354,1355],{},"database"," when using module-managed adapters.",[523,1358,1359,1362,1363,243],{},[169,1360,1361],{},"ctx.requestOrigin",": Current request origin when auth is created with ",[169,1364,1365],{},"serverAuth(event)",[229,1367,1368,1369,1372],{},"Use ",[169,1370,1371],{},"requestOrigin"," when Better Auth config needs the current request host, such as trusted origins:",[161,1374,1376],{"className":251,"code":1375,"filename":238,"language":253,"meta":167,"style":167},"import { defineServerAuth } from '@nuxtjs\u002Fbetter-auth\u002Fconfig'\n\nexport default defineServerAuth(({ requestOrigin }) => ({\n  trustedOrigins: requestOrigin ? [requestOrigin] : [],\n}))\n",[169,1377,1378,1392,1396,1416,1440],{"__ignoreMap":167},[172,1379,1380,1382,1384,1386,1388,1390],{"class":174,"line":175},[172,1381,1051],{"class":260},[172,1383,412],{"class":272},[172,1385,1035],{"class":278},[172,1387,1058],{"class":272},[172,1389,1061],{"class":260},[172,1391,1064],{"class":289},[172,1393,1394],{"class":174,"line":181},[172,1395,185],{"emptyLinePlaceholder":184},[172,1397,1398,1400,1402,1404,1407,1409,1412,1414],{"class":174,"line":188},[172,1399,261],{"class":260},[172,1401,265],{"class":264},[172,1403,1082],{"class":268},[172,1405,1406],{"class":272},"(({ ",[172,1408,1371],{"class":1130},[172,1410,1411],{"class":272}," }) ",[172,1413,1137],{"class":260},[172,1415,1140],{"class":272},[172,1417,1418,1421,1423,1426,1428,1430,1432,1435,1437],{"class":174,"line":194},[172,1419,1420],{"class":278},"  trustedOrigins",[172,1422,283],{"class":282},[172,1424,1425],{"class":278}," requestOrigin",[172,1427,1323],{"class":1322},[172,1429,286],{"class":272},[172,1431,1371],{"class":278},[172,1433,1434],{"class":272},"] ",[172,1436,283],{"class":1322},[172,1438,1439],{"class":272}," [],\n",[172,1441,1442],{"class":174,"line":200},[172,1443,1161],{"class":272},[486,1445,1446,1447,1450,1451,1453,1454,1456,1457,1460],{},"For configured canonical URLs, read ",[169,1448,1449],{},"runtimeConfig.public.siteUrl",". ",[169,1452,1371],{}," is optional and only available when auth is created from a request event. If allowed origins vary while using an explicit ",[169,1455,1319],{},", configure those origins explicitly or use Better Auth's ",[169,1458,1459],{},"trustedOrigins"," function form, because the auth instance can be cached.",[1032,1462,1464],{"id":1463},"session-enrichment","Session Enrichment",[229,1466,1467,1468,1471,1472,705,1475,1477,1478,1481],{},"You can enrich session payloads with Better Auth's ",[169,1469,1470],{},"custom-session"," plugin through ",[169,1473,1474],{},"plugins",[169,1476,1035],{},". This module does not provide a separate ",[169,1479,1480],{},"requestSession.enrich"," option.",[229,1483,1484,1485,243],{},"See the full recipe in ",[542,1486,141],{"href":1487},"\u002Fapi\u002Fserver-utils#session-enrichment-with-custom-session",[245,1489,1491],{"id":1490},"base-url-configuration","Base URL Configuration",[229,1493,1494,1495,1497],{},"The module resolves ",[169,1496,1319],{}," using this priority:",[1499,1500,1501,1517],"table",{},[1502,1503,1504],"thead",{},[1505,1506,1507,1511,1514],"tr",{},[1508,1509,1510],"th",{},"Priority",[1508,1512,1513],{},"Source",[1508,1515,1516],{},"When Used",[1518,1519,1520,1533,1548,1567],"tbody",{},[1505,1521,1522,1526,1530],{},[1523,1524,1525],"td",{},"1",[1523,1527,1528],{},[169,1529,1449],{},[1523,1531,1532],{},"Explicit config (always wins)",[1505,1534,1535,1538,1541],{},[1523,1536,1537],{},"2",[1523,1539,1540],{},"Request URL",[1523,1542,1543,1544,1547],{},"Auto-detected from the current Nitro request (",[169,1545,1546],{},"event",")",[1505,1549,1550,1553,1564],{},[1523,1551,1552],{},"3",[1523,1554,1555,235,1558,235,1561],{},[169,1556,1557],{},"VERCEL_URL",[169,1559,1560],{},"CF_PAGES_URL",[169,1562,1563],{},"URL",[1523,1565,1566],{},"Platform env vars (Vercel, Cloudflare, Netlify)",[1505,1568,1569,1572,1577],{},[1523,1570,1571],{},"4",[1523,1573,1574],{},[169,1575,1576],{},"http:\u002F\u002Flocalhost:3000",[1523,1578,1579],{},"Development only",[229,1581,1582,1583,1585,1586,1588],{},"In server handlers, pass ",[169,1584,1546],{}," to ",[169,1587,1365],{}," so request URL detection can run. In non-request contexts (seed scripts, tasks, startup plugins), the module uses environment\u002Fplatform fallbacks.",[229,1590,1591,1592,1594],{},"Set an explicit site URL in ",[169,1593,234],{}," for deterministic OAuth callbacks and origin checks:",[161,1596,1598],{"className":251,"code":1597,"filename":234,"language":253,"meta":167,"style":167},"export default defineNuxtConfig({\n  runtimeConfig: {\n    public: {\n      siteUrl: process.env.NUXT_PUBLIC_SITE_URL || 'http:\u002F\u002Flocalhost:3000',\n    },\n  },\n})\n",[169,1599,1600,1610,1619,1628,1656,1660,1664],{"__ignoreMap":167},[172,1601,1602,1604,1606,1608],{"class":174,"line":175},[172,1603,261],{"class":260},[172,1605,265],{"class":264},[172,1607,269],{"class":268},[172,1609,273],{"class":272},[172,1611,1612,1615,1617],{"class":174,"line":181},[172,1613,1614],{"class":278},"  runtimeConfig",[172,1616,283],{"class":282},[172,1618,303],{"class":272},[172,1620,1621,1624,1626],{"class":174,"line":188},[172,1622,1623],{"class":278},"    public",[172,1625,283],{"class":282},[172,1627,303],{"class":272},[172,1629,1630,1633,1635,1638,1640,1643,1645,1648,1651,1654],{"class":174,"line":194},[172,1631,1632],{"class":278},"      siteUrl",[172,1634,283],{"class":282},[172,1636,1637],{"class":1303}," process",[172,1639,243],{"class":272},[172,1641,1642],{"class":278},"env",[172,1644,243],{"class":272},[172,1646,1221],{"class":1647},"s6Rhl",[172,1649,1650],{"class":1322}," ||",[172,1652,1653],{"class":289}," 'http:\u002F\u002Flocalhost:3000'",[172,1655,325],{"class":272},[172,1657,1658],{"class":174,"line":200},[172,1659,358],{"class":272},[172,1661,1662],{"class":174,"line":206},[172,1663,391],{"class":272},[172,1665,1666],{"class":174,"line":212},[172,1667,484],{"class":272},[229,1669,1368,1670,1672],{},[169,1671,1221],{}," to provide this value per environment.",[229,1674,1675,1678,1679,1681,1682,1684],{},[1184,1676,1677],{},"Custom domains or self-hosted",": You should set ",[169,1680,1449],{}," (or ",[169,1683,1221],{},") when using custom domains or deploying to your own VPS\u002Fserver. Platform env vars return auto-generated URLs, not your custom domain.",[161,1686,1691],{"className":1687,"code":1688,"filename":1689,"language":1690,"meta":167,"style":167},"language-ini shiki shiki-themes one-light synthwave-84 synthwave-84","NUXT_PUBLIC_SITE_URL=\"https:\u002F\u002Fyour-domain.com\"\n",".env","ini",[169,1692,1693],{"__ignoreMap":167},[172,1694,1695],{"class":174,"line":175},[172,1696,1688],{},[486,1698,1699,1700,1681,1702,1704],{},"The module can auto-detect the request URL on most deployments. You should still set ",[169,1701,1449],{},[169,1703,1221],{},") when callback consistency matters, such as local OAuth debugging, custom domains, or non-request contexts like seed scripts.",[245,1706,1708],{"id":1707},"runtime-config","Runtime Config",[229,1710,1711,1712,695],{},"Configure secrets using environment variables (see ",[542,1713,13],{"href":1714},"\u002Fgetting-started\u002Finstallation#set-environment-variables",[161,1716,1718],{"className":1687,"code":1717,"filename":1689,"language":1690,"meta":167,"style":167},"NUXT_BETTER_AUTH_SECRET=\"your-super-secret-key\"\nNUXT_PUBLIC_SITE_URL=\"https:\u002F\u002Fyour-domain.com\" # Optional on Vercel\u002FCloudflare\u002FNetlify\n",[169,1719,1720,1725],{"__ignoreMap":167},[172,1721,1722],{"class":174,"line":175},[172,1723,1724],{},"NUXT_BETTER_AUTH_SECRET=\"your-super-secret-key\"\n",[172,1726,1727],{"class":174,"line":181},[172,1728,1729],{},"NUXT_PUBLIC_SITE_URL=\"https:\u002F\u002Fyour-domain.com\" # Optional on Vercel\u002FCloudflare\u002FNetlify\n",[1731,1732,1368,1733,1735,1736,1738],"tip",{},[169,1734,1193],{}," as the primary secret variable. ",[169,1737,1197],{}," remains supported as a fallback for existing setups.",[229,1740,1741,1742,1745,1746,705,1748,243],{},"For non-destructive rotation, use ",[169,1743,1744],{},"BETTER_AUTH_SECRETS=2:current-secret-must-be-at-least-32-characters,1:previous-secret-must-be-at-least-32-characters"," or configure ",[169,1747,1177],{},[169,1749,1035],{},[245,1751,1753],{"id":1752},"for-module-authors","For Module Authors",[245,1755,1757],{"id":1756},"recommended-order","Recommended order",[1759,1760,1761,1766,1771,1776],"ol",{},[523,1762,1763,1764,243],{},"Configure the module in ",[169,1765,234],{},[523,1767,1768,1769,243],{},"Configure Better Auth behavior in ",[169,1770,238],{},[523,1772,1773,1774,243],{},"Configure client plugins in ",[169,1775,242],{},[523,1777,1778,1779,492,1781,243],{},"Add route protection with ",[169,1780,491],{},[169,1782,1783],{},"definePageMeta({ auth })",[245,1785,1787],{"id":1786},"verify-the-result","Verify the result",[229,1789,1790],{},"After configuration changes:",[520,1792,1793,1796,1799],{},[523,1794,1795],{},"restart the Nuxt dev server if you changed schema- or plugin-related settings",[523,1797,1798],{},"confirm your app boots without missing-config errors",[523,1800,1801],{},"confirm route protection works on at least one protected page and one protected API route",[229,1803,1804],{},"Other Nuxt modules can extend the authentication configuration:",[161,1806,1808],{"className":251,"code":1807,"language":253,"meta":167,"style":167},"\u002F\u002F In your Nuxt module\nexport default defineNuxtModule({\n  setup(options, nuxt) {\n    nuxt.hook('better-auth:config:extend', (config) => {\n      config.plugins = [...(config.plugins || []), myPlugin()]\n    })\n  }\n})\n",[169,1809,1810,1815,1826,1845,1872,1910,1915,1920],{"__ignoreMap":167},[172,1811,1812],{"class":174,"line":175},[172,1813,1814],{"class":342},"\u002F\u002F In your Nuxt module\n",[172,1816,1817,1819,1821,1824],{"class":174,"line":181},[172,1818,261],{"class":260},[172,1820,265],{"class":264},[172,1822,1823],{"class":268}," defineNuxtModule",[172,1825,273],{"class":272},[172,1827,1828,1831,1834,1837,1839,1842],{"class":174,"line":188},[172,1829,1830],{"class":268},"  setup",[172,1832,1833],{"class":272},"(",[172,1835,1836],{"class":1130},"options",[172,1838,235],{"class":272},[172,1840,1841],{"class":1130},"nuxt",[172,1843,1844],{"class":272},") {\n",[172,1846,1847,1850,1852,1855,1857,1860,1863,1866,1868,1870],{"class":174,"line":194},[172,1848,1849],{"class":1303},"    nuxt",[172,1851,243],{"class":272},[172,1853,1854],{"class":268},"hook",[172,1856,1833],{"class":272},[172,1858,1859],{"class":289},"'better-auth:config:extend'",[172,1861,1862],{"class":272},", (",[172,1864,1865],{"class":1130},"config",[172,1867,1134],{"class":272},[172,1869,1137],{"class":260},[172,1871,303],{"class":272},[172,1873,1874,1877,1879,1881,1885,1887,1890,1892,1894,1896,1899,1901,1904,1907],{"class":174,"line":200},[172,1875,1876],{"class":1303},"      config",[172,1878,243],{"class":272},[172,1880,1474],{"class":278},[172,1882,1884],{"class":1883},"sQBpM"," =",[172,1886,286],{"class":272},[172,1888,1889],{"class":1322},"...",[172,1891,1833],{"class":272},[172,1893,1865],{"class":1303},[172,1895,243],{"class":272},[172,1897,1474],{"class":1898},"sjaJz",[172,1900,1650],{"class":1322},[172,1902,1903],{"class":272}," []), ",[172,1905,1906],{"class":268},"myPlugin",[172,1908,1909],{"class":272},"()]\n",[172,1911,1912],{"class":174,"line":206},[172,1913,1914],{"class":272},"    })\n",[172,1916,1917],{"class":174,"line":212},[172,1918,1919],{"class":272},"  }\n",[172,1921,1922],{"class":174,"line":218},[172,1923,484],{"class":272},[229,1925,1926],{},"Access sessions from server handlers:",[161,1928,1930],{"className":251,"code":1929,"language":253,"meta":167,"style":167},"const { user, session } = await getUserSession(event)\nif (!user) throw createError({ statusCode: 401 })\n",[169,1931,1932,1963],{"__ignoreMap":167},[172,1933,1934,1937,1939,1941,1943,1945,1947,1950,1953,1956,1958,1960],{"class":174,"line":175},[172,1935,1936],{"class":260},"const",[172,1938,412],{"class":272},[172,1940,685],{"class":1647},[172,1942,235],{"class":272},[172,1944,691],{"class":1647},[172,1946,1058],{"class":272},[172,1948,1949],{"class":1883},"=",[172,1951,1952],{"class":260}," await",[172,1954,1955],{"class":268}," getUserSession",[172,1957,1833],{"class":272},[172,1959,1546],{"class":1303},[172,1961,1962],{"class":272},")\n",[172,1964,1965,1968,1971,1974,1976,1978,1981,1984,1987,1990,1992,1995],{"class":174,"line":181},[172,1966,1967],{"class":260},"if",[172,1969,1970],{"class":272}," (",[172,1972,1973],{"class":1322},"!",[172,1975,685],{"class":1303},[172,1977,1134],{"class":272},[172,1979,1980],{"class":260},"throw",[172,1982,1983],{"class":268}," createError",[172,1985,1986],{"class":272},"({ ",[172,1988,1989],{"class":278},"statusCode",[172,1991,283],{"class":282},[172,1993,1994],{"class":369}," 401",[172,1996,1997],{"class":272}," })\n",[1999,2000,2001],"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 .sqe1H, html code.shiki .sqe1H{--shiki-light:#A626A4;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}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 .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 .sVnqq, html code.shiki .sVnqq{--shiki-light:#0184BC;--shiki-default:#B6B1B1;--shiki-dark:#B6B1B1}html pre.shiki code .sPAZv, html code.shiki .sPAZv{--shiki-light:#50A14F;--shiki-default:#FF8B39;--shiki-dark:#FF8B39}html pre.shiki code .st7cf, html code.shiki .st7cf{--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-default:#848BBD;--shiki-default-font-style:italic;--shiki-dark:#848BBD;--shiki-dark-font-style:italic}html pre.shiki code .s3ZNE, html code.shiki .s3ZNE{--shiki-light:#986801;--shiki-default:#F97E72;--shiki-dark:#F97E72}html pre.shiki code .sgisi, html code.shiki .sgisi{--shiki-light:#383A42;--shiki-light-font-style:inherit;--shiki-default:#FF7EDB;--shiki-default-font-style:italic;--shiki-dark:#FF7EDB;--shiki-dark-font-style:italic}html pre.shiki code .svFNh, html code.shiki .svFNh{--shiki-light:#383A42;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sn-Jc, html code.shiki .sn-Jc{--shiki-light:#0184BC;--shiki-default:#FEDE5D;--shiki-dark:#FEDE5D}html pre.shiki code .s6Rhl, html code.shiki .s6Rhl{--shiki-light:#986801;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}html pre.shiki code .sQBpM, html code.shiki .sQBpM{--shiki-light:#0184BC;--shiki-default:#FFFFFFEE;--shiki-dark:#FFFFFFEE}html pre.shiki code .sjaJz, html code.shiki .sjaJz{--shiki-light:#C18401;--shiki-default:#FF7EDB;--shiki-dark:#FF7EDB}",{"title":167,"searchDepth":181,"depth":181,"links":2003},[2004,2005,2006,2011,2012,2013,2014,2015],{"id":247,"depth":181,"text":248},{"id":755,"depth":181,"text":756},{"id":1023,"depth":181,"text":1024,"children":2007},[2008,2009,2010],{"id":1034,"depth":188,"text":1035},{"id":1224,"depth":188,"text":1225},{"id":1463,"depth":188,"text":1464},{"id":1490,"depth":181,"text":1491},{"id":1707,"depth":181,"text":1708},{"id":1752,"depth":181,"text":1753},{"id":1756,"depth":181,"text":1757},{"id":1786,"depth":181,"text":1787},"Configure the module options and your Better Auth server instance.","md",null,{},{"icon":21},{"title":18,"description":2016},"sCK0i4ziyiU6O9jiDuUjpRmDDackUmF3XNxRy2QnD9s",[2024,2026],{"title":13,"path":14,"stem":15,"description":2025,"icon":16,"children":-1},"Learn how to add Nuxt Better Auth to your Nuxt project.",{"title":23,"path":24,"stem":25,"description":2027,"icon":26,"children":-1},"Configure the client-side authentication client.",1787740692862]