[{"data":1,"prerenderedAt":951},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fconfiguration":178,"\u002Fgetting-started\u002Fconfiguration-surround":946},[4,23,78,95,123,143,158],{"title":5,"path":6,"stem":7,"children":8,"icon":22},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":13,"path":14,"stem":15,"icon":16},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":18,"path":19,"stem":20,"icon":21},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",false,{"title":24,"icon":22,"path":25,"stem":26,"children":27,"page":22},"Sign-in","\u002Fsign-in","2.sign-in",[28,33,38,43,48,53,58,63,68,73],{"title":29,"path":30,"stem":31,"icon":32},"Sign-in pages","\u002Fsign-in\u002Fpages","2.sign-in\u002F1.pages","i-lucide-log-in",{"title":34,"path":35,"stem":36,"icon":37},"Several accounts","\u002Fsign-in\u002Fmulti-session","2.sign-in\u002F10.multi-session","i-lucide-users-round",{"title":39,"path":40,"stem":41,"icon":42},"Account page","\u002Fsign-in\u002Faccount","2.sign-in\u002F2.account","i-lucide-circle-user",{"title":44,"path":45,"stem":46,"icon":47},"Other methods","\u002Fsign-in\u002Fmethods","2.sign-in\u002F3.methods","i-lucide-key-square",{"title":49,"path":50,"stem":51,"icon":52},"Sign-in providers","\u002Fsign-in\u002Fproviders","2.sign-in\u002F4.providers","i-lucide-share-2",{"title":54,"path":55,"stem":56,"icon":57},"Two-factor","\u002Fsign-in\u002Ftwo-factor","2.sign-in\u002F5.two-factor","i-lucide-shield-check",{"title":59,"path":60,"stem":61,"icon":62},"Passkeys","\u002Fsign-in\u002Fpasskeys","2.sign-in\u002F6.passkeys","i-lucide-fingerprint",{"title":64,"path":65,"stem":66,"icon":67},"Phone numbers","\u002Fsign-in\u002Fphone-numbers","2.sign-in\u002F7.phone-numbers","i-lucide-smartphone",{"title":69,"path":70,"stem":71,"icon":72},"Signing in devices","\u002Fsign-in\u002Fdevices","2.sign-in\u002F8.devices","i-lucide-tv",{"title":74,"path":75,"stem":76,"icon":77},"Security","\u002Fsign-in\u002Fsecurity","2.sign-in\u002F9.security","i-lucide-lock-keyhole",{"title":79,"path":80,"stem":81,"children":82,"icon":22},"Organizations","\u002Forganizations","3.organizations\u002F1.index",[83,85,90],{"title":79,"path":80,"stem":81,"icon":84},"i-lucide-building-2",{"title":86,"path":87,"stem":88,"icon":89},"Roles","\u002Forganizations\u002Froles","3.organizations\u002F2.roles","i-lucide-shield",{"title":91,"path":92,"stem":93,"icon":94},"Single sign-on","\u002Forganizations\u002Fsso","3.organizations\u002F3.sso","i-lucide-key-round",{"title":96,"path":97,"stem":98,"children":99,"icon":22},"Admin dashboard","\u002Fadmin","4.admin\u002F1.index",[100,103,108,113,118],{"title":101,"path":97,"stem":98,"icon":102},"Overview","i-lucide-layout-dashboard",{"title":104,"path":105,"stem":106,"icon":107},"Managing users","\u002Fadmin\u002Fusers","4.admin\u002F2.users","i-lucide-user-cog",{"title":109,"path":110,"stem":111,"icon":112},"Staff roles","\u002Fadmin\u002Froles","4.admin\u002F3.roles","i-lucide-shield-user",{"title":114,"path":115,"stem":116,"icon":117},"Audit log","\u002Fadmin\u002Faudit-log","4.admin\u002F4.audit-log","i-lucide-history",{"title":119,"path":120,"stem":121,"icon":122},"Your own pages","\u002Fadmin\u002Fextending","4.admin\u002F5.extending","i-lucide-layout-panel-left",{"title":124,"icon":22,"path":125,"stem":126,"children":127,"page":22},"Integrations","\u002Fintegrations","5.integrations",[128,133,138],{"title":129,"path":130,"stem":131,"icon":132},"Stripe","\u002Fintegrations\u002Fstripe","5.integrations\u002F1.stripe","i-simple-icons-stripe",{"title":134,"path":135,"stem":136,"icon":137},"API keys","\u002Fintegrations\u002Fapi-keys","5.integrations\u002F2.api-keys","i-lucide-key",{"title":139,"path":140,"stem":141,"icon":142},"Tokens","\u002Fintegrations\u002Ftokens","5.integrations\u002F3.tokens","i-lucide-ticket",{"title":144,"icon":22,"path":145,"stem":146,"children":147,"page":22},"Customization","\u002Fcustomization","6.customization",[148,153],{"title":149,"path":150,"stem":151,"icon":152},"Emails","\u002Fcustomization\u002Femails","6.customization\u002F1.emails","i-lucide-mail",{"title":154,"path":155,"stem":156,"icon":157},"Languages","\u002Fcustomization\u002Flanguages","6.customization\u002F2.languages","i-lucide-languages",{"title":159,"icon":22,"path":160,"stem":161,"children":162,"page":22},"Reference","\u002Freference","7.reference",[163,168,173],{"title":164,"path":165,"stem":166,"icon":167},"How it works","\u002Freference\u002Fhow-it-works","7.reference\u002F1.how-it-works","i-lucide-cog",{"title":169,"path":170,"stem":171,"icon":172},"API reference","\u002Freference\u002Fapi","7.reference\u002F2.api","i-lucide-braces",{"title":174,"path":175,"stem":176,"icon":177},"Contributing","\u002Freference\u002Fcontributing","7.reference\u002F3.contributing","i-lucide-git-pull-request",{"id":179,"title":18,"body":180,"description":939,"extension":940,"links":941,"meta":942,"navigation":943,"path":19,"seo":944,"stem":20,"__hash__":945},"docs\u002F1.getting-started\u002F3.configuration.md",{"type":181,"value":182,"toc":931},"minimark",[183,196,350,355,358,389,399,404,411,415,801,805,868,872,877,916,927],[184,185,186,187,191,192,195],"p",{},"Everything is configured under ",[188,189,190],"code",{},"betterAuthUi"," in ",[188,193,194],{},"nuxt.config.ts",". The sign-in pages, the account page and the admin\ndashboard are on from the start; every other feature is off until you turn it on.",[197,198,203],"pre",{"className":199,"code":200,"filename":194,"language":201,"meta":202,"style":202},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['@treygrr\u002Fnuxt-better-auth-ui'],\n  betterAuthUi: {\n    twoFactor: { enabled: true },\n    magicLink: { enabled: true },\n    emails: { send: '.\u002Fserver\u002Femails\u002Fsend.ts' }\n  }\n})\n","ts","",[188,204,205,229,257,268,291,309,335,341],{"__ignoreMap":202},[206,207,210,214,217,221,225],"span",{"class":208,"line":209},"line",1,[206,211,213],{"class":212},"s7zQu","export",[206,215,216],{"class":212}," default",[206,218,220],{"class":219},"s2Zo4"," defineNuxtConfig",[206,222,224],{"class":223},"sTEyZ","(",[206,226,228],{"class":227},"sMK4o","{\n",[206,230,232,236,239,242,245,249,251,254],{"class":208,"line":231},2,[206,233,235],{"class":234},"swJcz","  modules",[206,237,238],{"class":227},":",[206,240,241],{"class":223}," [",[206,243,244],{"class":227},"'",[206,246,248],{"class":247},"sfazB","@treygrr\u002Fnuxt-better-auth-ui",[206,250,244],{"class":227},[206,252,253],{"class":223},"]",[206,255,256],{"class":227},",\n",[206,258,260,263,265],{"class":208,"line":259},3,[206,261,262],{"class":234},"  betterAuthUi",[206,264,238],{"class":227},[206,266,267],{"class":227}," {\n",[206,269,271,274,276,279,282,284,288],{"class":208,"line":270},4,[206,272,273],{"class":234},"    twoFactor",[206,275,238],{"class":227},[206,277,278],{"class":227}," {",[206,280,281],{"class":234}," enabled",[206,283,238],{"class":227},[206,285,287],{"class":286},"sfNiH"," true",[206,289,290],{"class":227}," },\n",[206,292,294,297,299,301,303,305,307],{"class":208,"line":293},5,[206,295,296],{"class":234},"    magicLink",[206,298,238],{"class":227},[206,300,278],{"class":227},[206,302,281],{"class":234},[206,304,238],{"class":227},[206,306,287],{"class":286},[206,308,290],{"class":227},[206,310,312,315,317,319,322,324,327,330,332],{"class":208,"line":311},6,[206,313,314],{"class":234},"    emails",[206,316,238],{"class":227},[206,318,278],{"class":227},[206,320,321],{"class":234}," send",[206,323,238],{"class":227},[206,325,326],{"class":227}," '",[206,328,329],{"class":247},".\u002Fserver\u002Femails\u002Fsend.ts",[206,331,244],{"class":227},[206,333,334],{"class":227}," }\n",[206,336,338],{"class":208,"line":337},7,[206,339,340],{"class":227},"  }\n",[206,342,344,347],{"class":208,"line":343},8,[206,345,346],{"class":227},"}",[206,348,349],{"class":223},")\n",[351,352,354],"h2",{"id":353},"how-a-feature-is-added","How a feature is added",[184,356,357],{},"Most features are one of Better Auth's own plugins. When you turn one on, the module:",[359,360,361,377,383],"ol",{},[362,363,364,368,369,372,373,376],"li",{},[365,366,367],"strong",{},"adds the plugin"," to Better Auth's server and client config for you, so your ",[188,370,371],{},"server\u002Fauth.config.ts"," and\n",[188,374,375],{},"app\u002Fauth.config.ts"," don't change;",[362,378,379,382],{},[365,380,381],{},"shows it on the pages"," that use it: a button on the sign-in page, a card on the account page, a column in the\nadmin;",[362,384,385,388],{},[365,386,387],{},"lists it on the admin's configuration page",", so staff can see how the app is set up.",[390,391,392],"note",{},[184,393,394,395,398],{},"After turning on a feature that adds tables or columns, ",[365,396,397],{},"run Better Auth's migrations"," again, the same way you\napply your other Better Auth migrations. Each feature's page says whether it needs one.",[400,401,403],"h3",{"id":402},"adding-a-plugin-yourself","Adding a plugin yourself",[184,405,406,407,410],{},"The pages read your Better Auth set-up at runtime, so they also pick up plugins ",[365,408,409],{},"your own auth config"," adds. That's\nuseful when you need a plugin option the module doesn't pass through: leave the module's option off, add the plugin\nand its client plugin to your auth configs, and the pages show it all the same. A few extras only come with the\nmodule's own plugin; their pages say which.",[351,412,414],{"id":413},"features","Features",[416,417,418,437],"table",{},[419,420,421],"thead",{},[422,423,424,428,431,434],"tr",{},[425,426,427],"th",{},"Feature",[425,429,430],{},"Option",[425,432,433],{},"Package to install",[425,435,436],{},"Migration",[438,439,440,459,477,494,512,529,546,561,580,595,612,629,646,663,680,695,713,734,752,769,786],"tbody",{},[422,441,442,449,454,456],{},[443,444,445],"td",{},[446,447,448],"a",{"href":55},"Two-factor authentication",[443,450,451],{},[188,452,453],{},"twoFactor",[443,455],{},[443,457,458],{},"Yes",[422,460,461,465,470,475],{},[443,462,463],{},[446,464,59],{"href":60},[443,466,467],{},[188,468,469],{},"passkey",[443,471,472],{},[188,473,474],{},"@better-auth\u002Fpasskey",[443,476,458],{},[422,478,479,485,490,492],{},[443,480,481],{},[446,482,484],{"href":483},"\u002Fsign-in\u002Fmethods#usernames","Usernames",[443,486,487],{},[188,488,489],{},"username",[443,491],{},[443,493,458],{},[422,495,496,502,507,509],{},[443,497,498],{},[446,499,501],{"href":500},"\u002Fsign-in\u002Fmethods#sign-in-links","Sign-in links",[443,503,504],{},[188,505,506],{},"magicLink",[443,508],{},[443,510,511],{},"No",[422,513,514,520,525,527],{},[443,515,516],{},[446,517,519],{"href":518},"\u002Fsign-in\u002Fmethods#codes-by-email","Codes by email",[443,521,522],{},[188,523,524],{},"emailOtp",[443,526],{},[443,528,511],{},[422,530,531,537,542,544],{},[443,532,533],{},[446,534,536],{"href":535},"\u002Fsign-in\u002Fmethods#guest-accounts","Guest accounts",[443,538,539],{},[188,540,541],{},"anonymous",[443,543],{},[443,545,458],{},[422,547,548,552,557,559],{},[443,549,550],{},[446,551,34],{"href":35},[443,553,554],{},[188,555,556],{},"multiSession",[443,558],{},[443,560,511],{},[422,562,563,567,576,578],{},[443,564,565],{},[446,566,64],{"href":65},[443,568,569,572,573],{},[188,570,571],{},"phoneNumber",", ",[188,574,575],{},"sms",[443,577],{},[443,579,458],{},[422,581,582,586,591,593],{},[443,583,584],{},[446,585,69],{"href":70},[443,587,588],{},[188,589,590],{},"deviceAuthorization",[443,592],{},[443,594,458],{},[422,596,597,603,608,610],{},[443,598,599],{},[446,600,602],{"href":601},"\u002Fsign-in\u002Fproviders#sign-in-in-a-popup","Provider sign-in in a popup",[443,604,605],{},[188,606,607],{},"oauthPopup",[443,609],{},[443,611,511],{},[422,613,614,620,625,627],{},[443,615,616],{},[446,617,619],{"href":618},"\u002Fsign-in\u002Fsecurity#captcha","Captcha",[443,621,622],{},[188,623,624],{},"captcha",[443,626],{},[443,628,511],{},[422,630,631,637,642,644],{},[443,632,633],{},[446,634,636],{"href":635},"\u002Fsign-in\u002Fsecurity#breached-passwords","Breached passwords",[443,638,639],{},[188,640,641],{},"haveIBeenPwned",[443,643],{},[443,645,511],{},[422,647,648,654,659,661],{},[443,649,650],{},[446,651,653],{"href":652},"\u002Fsign-in\u002Fpages#last-used-method","\"Last used\" method",[443,655,656],{},[188,657,658],{},"lastLoginMethod",[443,660],{},[443,662,511],{},[422,664,665,671,676,678],{},[443,666,667],{},[446,668,670],{"href":669},"\u002Fsign-in\u002Fsecurity#security-alerts","Security alerts",[443,672,673],{},[188,674,675],{},"securityAlerts",[443,677],{},[443,679,511],{},[422,681,682,686,691,693],{},[443,683,684],{},[446,685,79],{"href":80},[443,687,688],{},[188,689,690],{},"organization",[443,692],{},[443,694,458],{},[422,696,697,701,706,711],{},[443,698,699],{},[446,700,91],{"href":92},[443,702,703],{},[188,704,705],{},"sso",[443,707,708],{},[188,709,710],{},"@better-auth\u002Fsso",[443,712,458],{},[422,714,715,720,725,732],{},[443,716,717],{},[446,718,719],{"href":130},"Subscriptions with Stripe",[443,721,722],{},[188,723,724],{},"stripe",[443,726,727,572,730],{},[188,728,729],{},"@better-auth\u002Fstripe",[188,731,724],{},[443,733,458],{},[422,735,736,740,745,750],{},[443,737,738],{},[446,739,134],{"href":135},[443,741,742],{},[188,743,744],{},"apiKey",[443,746,747],{},[188,748,749],{},"@better-auth\u002Fapi-key",[443,751,458],{},[422,753,754,760,765,767],{},[443,755,756],{},[446,757,759],{"href":758},"\u002Fintegrations\u002Ftokens#bearer-tokens","Bearer tokens",[443,761,762],{},[188,763,764],{},"bearer",[443,766],{},[443,768,511],{},[422,770,771,777,782,784],{},[443,772,773],{},[446,774,776],{"href":775},"\u002Fintegrations\u002Ftokens#jwts","JWTs",[443,778,779],{},[188,780,781],{},"jwt",[443,783],{},[443,785,458],{},[422,787,788,792,797,799],{},[443,789,790],{},[446,791,149],{"href":150},[443,793,794],{},[188,795,796],{},"emails",[443,798],{},[443,800,511],{},[351,802,804],{"id":803},"general-options","General options",[806,807,808,824,832,852,860],"field-group",{},[809,810,813],"field",{"name":811,"type":812},"pages","object",[184,814,815,816,819,820,823],{},"Where each page lives, or ",[188,817,818],{},"false"," to leave one out. See ",[446,821,29],{"href":822},"\u002Fsign-in\u002Fpages#moving-or-turning-off-a-page",".",[809,825,829],{"name":826,"type":827,"default":828},"signOutRedirect","string","'\u002F'",[184,830,831],{},"Where people go after signing out from the account page or the admin menu.",[809,833,836],{"name":834,"type":827,"default":835},"locale","'en'",[184,837,838,839,572,842,845,846,849,850,823],{},"The pages' and default emails' language: ",[188,840,841],{},"en",[188,843,844],{},"es",", or one you add with ",[188,847,848],{},"messages",". See\n",[446,851,154],{"href":155},[809,853,854],{"name":848,"type":812},[184,855,856,857,823],{},"Your own words for any of the module's, per language and key. See ",[446,858,154],{"href":859},"\u002Fcustomization\u002Flanguages#your-own-words",[809,861,863],{"name":862,"type":812},"admin",[184,864,865,866,823],{},"The admin dashboard: its route, roles, impersonation, audit log and more. See ",[446,867,96],{"href":97},[351,869,871],{"id":870},"environment-variables","Environment variables",[184,873,874,875,238],{},"Secrets are read from the environment at runtime, never from ",[188,876,194],{},[416,878,879,889],{},[419,880,881],{},[422,882,883,886],{},[425,884,885],{},"Variable",[425,887,888],{},"Used by",[438,890,891,902],{},[422,892,893,898],{},[443,894,895],{},[188,896,897],{},"BETTER_AUTH_CAPTCHA_SECRET_KEY",[443,899,900],{},[446,901,619],{"href":618},[422,903,904,912],{},[443,905,906,572,909],{},[188,907,908],{},"STRIPE_SECRET_KEY",[188,910,911],{},"STRIPE_WEBHOOK_SECRET",[443,913,914],{},[446,915,129],{"href":130},[184,917,918,919,823],{},"Better Auth's own variables (its secret and base URL) work as usual; see\n",[446,920,924],{"href":921,"rel":922},"https:\u002F\u002Fbetter-auth.nuxt.dev",[923],"nofollow",[188,925,926],{},"@nuxtjs\u002Fbetter-auth",[928,929,930],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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);}",{"title":202,"searchDepth":209,"depth":231,"links":932},[933,936,937,938],{"id":353,"depth":231,"text":354,"children":934},[935],{"id":402,"depth":259,"text":403},{"id":413,"depth":231,"text":414},{"id":803,"depth":231,"text":804},{"id":870,"depth":231,"text":871},"How features are turned on, and every option at a glance.","md",null,{},{"icon":21},{"title":18,"description":939},"xeMp1x4Ta3ouQqQPi_AbQX7Zx3mmFIdXUbsKCwLpki4",[947,949],{"title":13,"path":14,"stem":15,"description":948,"icon":16,"children":-1},"Add the module to your Nuxt app.",{"title":29,"path":30,"stem":31,"description":950,"icon":32,"children":-1},"Sign in, sign up, password resets and two-factor, ready to use.",1793019842937]