[{"data":1,"prerenderedAt":872},["ShallowReactive",2],{"docs-nav:en":3,"docs:\u002Fdocs\u002Fclient\u002Fsession":186},[4],{"title":5,"path":6,"stem":7,"children":8},"Docs","\u002Fdocs","docs",[9,12,16,20,24,28,50,75,120,145],{"title":10,"path":6,"stem":11},"What is Fougere","docs\u002Findex",{"title":13,"path":14,"stem":15},"Getting started","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",{"title":17,"path":18,"stem":19},"An app you already have","\u002Fdocs\u002Fexisting-app","docs\u002F02.existing-app",{"title":21,"path":22,"stem":23},"Bring your schema","\u002Fdocs\u002Fbring-your-schema","docs\u002F03.bring-your-schema",{"title":25,"path":26,"stem":27},"The CLI","\u002Fdocs\u002Fcli","docs\u002F04.cli",{"title":29,"path":30,"stem":31,"children":32,"page":49},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002F2.concepts",[33,37,41,45],{"title":34,"path":35,"stem":36},"Philosophy","\u002Fdocs\u002Fconcepts\u002Fphilosophy","docs\u002F2.concepts\u002F1.philosophy",{"title":38,"path":39,"stem":40},"The Frond","\u002Fdocs\u002Fconcepts\u002Ffrond","docs\u002F2.concepts\u002F2.frond",{"title":42,"path":43,"stem":44},"The shortest path","\u002Fdocs\u002Fconcepts\u002Fshortest-path","docs\u002F2.concepts\u002F3.shortest-path",{"title":46,"path":47,"stem":48},"The base","\u002Fdocs\u002Fconcepts\u002Fthe-base","docs\u002F2.concepts\u002F4.the-base",false,{"title":51,"path":52,"stem":53,"children":54,"page":49},"Schema","\u002Fdocs\u002Fschema","docs\u002F3.schema",[55,59,63,67,71],{"title":56,"path":57,"stem":58},"Entities","\u002Fdocs\u002Fschema\u002Fentities","docs\u002F3.schema\u002F1.entities",{"title":60,"path":61,"stem":62},"Views","\u002Fdocs\u002Fschema\u002Fviews","docs\u002F3.schema\u002F2.views",{"title":64,"path":65,"stem":66},"The identity card","\u002Fdocs\u002Fschema\u002Fcard","docs\u002F3.schema\u002F3.card",{"title":68,"path":69,"stem":70},"Standard Schema","\u002Fdocs\u002Fschema\u002Fstandard-schema","docs\u002F3.schema\u002F4.standard-schema",{"title":72,"path":73,"stem":74},"How a schema moves","\u002Fdocs\u002Fschema\u002Fevolution","docs\u002F3.schema\u002F5.evolution",{"title":76,"path":77,"stem":78,"children":79,"page":49},"Business","\u002Fdocs\u002Fbusiness","docs\u002F4.business",[80,84,88,92,96,100,104,108,112,116],{"title":81,"path":82,"stem":83},"Handlers","\u002Fdocs\u002Fbusiness\u002Fhandlers","docs\u002F4.business\u002F1.handlers",{"title":85,"path":86,"stem":87},"Ports","\u002Fdocs\u002Fbusiness\u002Fports","docs\u002F4.business\u002F10.ports",{"title":89,"path":90,"stem":91},"Presenters","\u002Fdocs\u002Fbusiness\u002Fpresenters","docs\u002F4.business\u002F2.presenters",{"title":93,"path":94,"stem":95},"Collectors","\u002Fdocs\u002Fbusiness\u002Fcollectors","docs\u002F4.business\u002F3.collectors",{"title":97,"path":98,"stem":99},"Errors","\u002Fdocs\u002Fbusiness\u002Ferrors","docs\u002F4.business\u002F4.errors",{"title":101,"path":102,"stem":103},"Seeds","\u002Fdocs\u002Fbusiness\u002Fseeds","docs\u002F4.business\u002F5.seeds",{"title":105,"path":106,"stem":107},"Facts","\u002Fdocs\u002Fbusiness\u002Ffacts","docs\u002F4.business\u002F6.facts",{"title":109,"path":110,"stem":111},"Storage","\u002Fdocs\u002Fbusiness\u002Fstorage","docs\u002F4.business\u002F7.storage",{"title":113,"path":114,"stem":115},"Writes that stand or fall as one","\u002Fdocs\u002Fbusiness\u002Ftogether","docs\u002F4.business\u002F8.together",{"title":117,"path":118,"stem":119},"Repositories","\u002Fdocs\u002Fbusiness\u002Frepositories","docs\u002F4.business\u002F9.repositories",{"title":121,"path":122,"stem":123,"children":124,"page":49},"Client","\u002Fdocs\u002Fclient","docs\u002F5.client",[125,129,133,137,141],{"title":126,"path":127,"stem":128},"Queries & commands","\u002Fdocs\u002Fclient\u002Fqueries-commands","docs\u002F5.client\u002F1.queries-commands",{"title":130,"path":131,"stem":132},"Forms","\u002Fdocs\u002Fclient\u002Fforms","docs\u002F5.client\u002F2.forms",{"title":134,"path":135,"stem":136},"Session","\u002Fdocs\u002Fclient\u002Fsession","docs\u002F5.client\u002F3.session",{"title":138,"path":139,"stem":140},"invoke","\u002Fdocs\u002Fclient\u002Finvoke","docs\u002F5.client\u002F4.invoke",{"title":142,"path":143,"stem":144},"Back-office","\u002Fdocs\u002Fclient\u002Fadmin","docs\u002F5.client\u002F5.admin",{"title":146,"path":147,"stem":148,"children":149,"page":49},"Infrastructure","\u002Fdocs\u002Finfra","docs\u002F6.infra",[150,154,158,162,166,170,174,178,182],{"title":151,"path":152,"stem":153},"The gradient","\u002Fdocs\u002Finfra\u002Fgradient","docs\u002F6.infra\u002F1.gradient",{"title":155,"path":156,"stem":157},"Surfaces — REST & GraphQL","\u002Fdocs\u002Finfra\u002Fsurfaces","docs\u002F6.infra\u002F2.surfaces",{"title":159,"path":160,"stem":161},"Deployment","\u002Fdocs\u002Finfra\u002Fdeployment","docs\u002F6.infra\u002F3.deployment",{"title":163,"path":164,"stem":165},"Hosts","\u002Fdocs\u002Finfra\u002Fhosts","docs\u002F6.infra\u002F4.hosts",{"title":167,"path":168,"stem":169},"Sources","\u002Fdocs\u002Finfra\u002Fsources","docs\u002F6.infra\u002F5.sources",{"title":171,"path":172,"stem":173},"Lifecycle","\u002Fdocs\u002Finfra\u002Flifecycle","docs\u002F6.infra\u002F6.lifecycle",{"title":175,"path":176,"stem":177},"Identity across Fronds","\u002Fdocs\u002Finfra\u002Fidentity","docs\u002F6.infra\u002F7.identity",{"title":179,"path":180,"stem":181},"Observability","\u002Fdocs\u002Finfra\u002Fobservability","docs\u002F6.infra\u002F8.observability",{"title":183,"path":184,"stem":185},"Testing","\u002Fdocs\u002Finfra\u002Ftesting","docs\u002F6.infra\u002F9.testing",{"id":187,"title":134,"body":188,"description":867,"extension":868,"meta":869,"navigation":657,"path":135,"seo":870,"stem":136,"__hash__":871},"docs_en\u002Fdocs\u002F5.client\u002F3.session.md",{"type":189,"value":190,"toc":862},"minimark",[191,195,199,204,268,382,385,389,409,586,597,756,766,787,791,845,852,858],[192,193,134],"h1",{"id":194},"session",[196,197,198],"p",{},"The session is resolved server-side. It is then hydrated into the page, injected into\nhandlers, and sent to remote Fronds.",[200,201,203],"h2",{"id":202},"usecurrentuser","useCurrentUser",[205,206,211],"pre",{"className":207,"code":208,"language":209,"meta":210,"style":210},"language-ts shiki shiki-themes material-theme-lighter github-light github-dark","const { user, refresh } = useCurrentUser();\n\u002F\u002F user:    Ref\u003CUser | null> — resolved during SSR, hydrated with the page: zero extra requests\n\u002F\u002F refresh: () => Promise\u003Cvoid> — re-read after sign-in\u002Fout\n","ts","",[212,213,214,255,262],"code",{"__ignoreMap":210},[215,216,219,223,227,231,234,237,240,244,248,252],"span",{"class":217,"line":218},"line",1,[215,220,222],{"class":221},"sbsja","const",[215,224,226],{"class":225},"sP7_E"," {",[215,228,230],{"class":229},"s_hVV"," user",[215,232,233],{"class":225},",",[215,235,236],{"class":229}," refresh",[215,238,239],{"class":225}," }",[215,241,243],{"class":242},"smGrS"," =",[215,245,247],{"class":246},"sGLFI"," useCurrentUser",[215,249,251],{"class":250},"su5hD","()",[215,253,254],{"class":225},";\n",[215,256,258],{"class":217,"line":257},2,[215,259,261],{"class":260},"sutJx","\u002F\u002F user:    Ref\u003CUser | null> — resolved during SSR, hydrated with the page: zero extra requests\n",[215,263,265],{"class":217,"line":264},3,[215,266,267],{"class":260},"\u002F\u002F refresh: () => Promise\u003Cvoid> — re-read after sign-in\u002Fout\n",[205,269,273],{"className":270,"code":271,"language":272,"meta":210,"style":210},"language-vue shiki shiki-themes material-theme-lighter github-light github-dark","\u003Ctemplate>\n  \u003CUButton v-if=\"user\" :to=\"localePath('\u002Fblog\u002Fnew')\" :label=\"$t('nav.write')\" \u002F>\n  \u003CUButton v-else :to=\"localePath('\u002Flogin')\" :label=\"$t('nav.signIn')\" \u002F>\n\u003C\u002Ftemplate>\n","vue",[212,274,275,287,339,372],{"__ignoreMap":210},[215,276,277,280,284],{"class":217,"line":218},[215,278,279],{"class":225},"\u003C",[215,281,283],{"class":282},"sQzsp","template",[215,285,286],{"class":225},">\n",[215,288,289,292,295,299,302,306,310,312,315,317,319,322,324,327,329,331,334,336],{"class":217,"line":257},[215,290,291],{"class":225},"  \u003C",[215,293,294],{"class":282},"UButton",[215,296,298],{"class":297},"s9AJx"," v-if",[215,300,301],{"class":225},"=",[215,303,305],{"class":304},"sjJ54","\"",[215,307,309],{"class":308},"s_sjI","user",[215,311,305],{"class":304},[215,313,314],{"class":297}," :to",[215,316,301],{"class":225},[215,318,305],{"class":304},[215,320,321],{"class":308},"localePath('\u002Fblog\u002Fnew')",[215,323,305],{"class":304},[215,325,326],{"class":297}," :label",[215,328,301],{"class":225},[215,330,305],{"class":304},[215,332,333],{"class":308},"$t('nav.write')",[215,335,305],{"class":304},[215,337,338],{"class":225}," \u002F>\n",[215,340,341,343,345,348,350,352,354,357,359,361,363,365,368,370],{"class":217,"line":264},[215,342,291],{"class":225},[215,344,294],{"class":282},[215,346,347],{"class":297}," v-else",[215,349,314],{"class":297},[215,351,301],{"class":225},[215,353,305],{"class":304},[215,355,356],{"class":308},"localePath('\u002Flogin')",[215,358,305],{"class":304},[215,360,326],{"class":297},[215,362,301],{"class":225},[215,364,305],{"class":304},[215,366,367],{"class":308},"$t('nav.signIn')",[215,369,305],{"class":304},[215,371,338],{"class":225},[215,373,375,378,380],{"class":217,"line":374},4,[215,376,377],{"class":225},"\u003C\u002F",[215,379,283],{"class":282},[215,381,286],{"class":225},[196,383,384],{},"Route protection is an ordinary Nuxt middleware reading the same session — Fougere does\nnot add a parallel guard system.",[200,386,388],{"id":387},"the-auth-surface","The auth surface",[196,390,391,394,395,398,399,404,405,408],{},[212,392,393],{},"auth: betterAuth({ … })"," in ",[212,396,397],{},"fougere.config.ts"," (",[400,401,403],"a",{"href":402},"\u002Fdocs\u002Fgetting-started#fougereconfigts--reference","reference",")\nmounts better-auth under ",[212,406,407],{},"basePath"," — the endpoints your pages call directly:",[205,410,412],{"className":207,"code":411,"language":209,"meta":210,"style":210},"await $fetch('\u002Fauth\u002Fsign-up\u002Femail', { method: 'POST', body: { name, email, password } });\nawait $fetch('\u002Fauth\u002Fsign-in\u002Femail', { method: 'POST', body: { email, password } });\nawait $fetch('\u002Fauth\u002Fsign-out',      { method: 'POST', body: {} });\n\u002F\u002F then: await refresh()\n",[212,413,414,485,536,581],{"__ignoreMap":210},[215,415,416,420,423,426,429,432,434,436,438,442,445,448,451,453,455,458,460,462,465,467,470,472,475,478,480,483],{"class":217,"line":218},[215,417,419],{"class":418},"sVHd0","await",[215,421,422],{"class":246}," $fetch",[215,424,425],{"class":250},"(",[215,427,428],{"class":304},"'",[215,430,431],{"class":308},"\u002Fauth\u002Fsign-up\u002Femail",[215,433,428],{"class":304},[215,435,233],{"class":225},[215,437,226],{"class":225},[215,439,441],{"class":440},"skxfh"," method",[215,443,444],{"class":225},":",[215,446,447],{"class":304}," '",[215,449,450],{"class":308},"POST",[215,452,428],{"class":304},[215,454,233],{"class":225},[215,456,457],{"class":440}," body",[215,459,444],{"class":225},[215,461,226],{"class":225},[215,463,464],{"class":250}," name",[215,466,233],{"class":225},[215,468,469],{"class":250}," email",[215,471,233],{"class":225},[215,473,474],{"class":250}," password ",[215,476,477],{"class":225},"}",[215,479,239],{"class":225},[215,481,482],{"class":250},")",[215,484,254],{"class":225},[215,486,487,489,491,493,495,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534],{"class":217,"line":257},[215,488,419],{"class":418},[215,490,422],{"class":246},[215,492,425],{"class":250},[215,494,428],{"class":304},[215,496,497],{"class":308},"\u002Fauth\u002Fsign-in\u002Femail",[215,499,428],{"class":304},[215,501,233],{"class":225},[215,503,226],{"class":225},[215,505,441],{"class":440},[215,507,444],{"class":225},[215,509,447],{"class":304},[215,511,450],{"class":308},[215,513,428],{"class":304},[215,515,233],{"class":225},[215,517,457],{"class":440},[215,519,444],{"class":225},[215,521,226],{"class":225},[215,523,469],{"class":250},[215,525,233],{"class":225},[215,527,474],{"class":250},[215,529,477],{"class":225},[215,531,239],{"class":225},[215,533,482],{"class":250},[215,535,254],{"class":225},[215,537,538,540,542,544,546,549,551,553,556,558,560,562,564,566,568,570,572,575,577,579],{"class":217,"line":264},[215,539,419],{"class":418},[215,541,422],{"class":246},[215,543,425],{"class":250},[215,545,428],{"class":304},[215,547,548],{"class":308},"\u002Fauth\u002Fsign-out",[215,550,428],{"class":304},[215,552,233],{"class":225},[215,554,555],{"class":225},"      {",[215,557,441],{"class":440},[215,559,444],{"class":225},[215,561,447],{"class":304},[215,563,450],{"class":308},[215,565,428],{"class":304},[215,567,233],{"class":225},[215,569,457],{"class":440},[215,571,444],{"class":225},[215,573,574],{"class":225}," {}",[215,576,239],{"class":225},[215,578,482],{"class":250},[215,580,254],{"class":225},[215,582,583],{"class":217,"line":374},[215,584,585],{"class":260},"\u002F\u002F then: await refresh()\n",[196,587,588,589,592,593,596],{},"Your ",[212,590,591],{},"User"," entity extends ",[212,594,595],{},"AuthUser"," — better-auth's fields plus yours:",[205,598,600],{"className":207,"code":599,"language":209,"meta":210,"style":210},"import { AuthUser } from '@fougere\u002Fauth-better';\nimport { oneOf, optional } from '@fougere\u002Fschema';\n\nexport default class User extends AuthUser.extend({\n  role: optional(oneOf('admin', 'editor', 'reader')),\n}).anchor() {}\n",[212,601,602,626,653,659,690,738],{"__ignoreMap":210},[215,603,604,607,609,612,614,617,619,622,624],{"class":217,"line":218},[215,605,606],{"class":418},"import",[215,608,226],{"class":225},[215,610,611],{"class":250}," AuthUser",[215,613,239],{"class":225},[215,615,616],{"class":418}," from",[215,618,447],{"class":304},[215,620,621],{"class":308},"@fougere\u002Fauth-better",[215,623,428],{"class":304},[215,625,254],{"class":225},[215,627,628,630,632,635,637,640,642,644,646,649,651],{"class":217,"line":257},[215,629,606],{"class":418},[215,631,226],{"class":225},[215,633,634],{"class":250}," oneOf",[215,636,233],{"class":225},[215,638,639],{"class":250}," optional",[215,641,239],{"class":225},[215,643,616],{"class":418},[215,645,447],{"class":304},[215,647,648],{"class":308},"@fougere\u002Fschema",[215,650,428],{"class":304},[215,652,254],{"class":225},[215,654,655],{"class":217,"line":264},[215,656,658],{"emptyLinePlaceholder":657},true,"\n",[215,660,661,664,667,670,674,677,679,682,685,687],{"class":217,"line":374},[215,662,663],{"class":418},"export",[215,665,666],{"class":418}," default",[215,668,669],{"class":221}," class",[215,671,673],{"class":672},"sbgvK"," User",[215,675,676],{"class":221}," extends",[215,678,611],{"class":250},[215,680,681],{"class":225},".",[215,683,684],{"class":246},"extend",[215,686,425],{"class":250},[215,688,689],{"class":225},"{\n",[215,691,693,696,698,700,702,705,707,709,712,714,716,718,721,723,725,727,730,732,735],{"class":217,"line":692},5,[215,694,695],{"class":440},"  role",[215,697,444],{"class":225},[215,699,639],{"class":246},[215,701,425],{"class":250},[215,703,704],{"class":246},"oneOf",[215,706,425],{"class":250},[215,708,428],{"class":304},[215,710,711],{"class":308},"admin",[215,713,428],{"class":304},[215,715,233],{"class":225},[215,717,447],{"class":304},[215,719,720],{"class":308},"editor",[215,722,428],{"class":304},[215,724,233],{"class":225},[215,726,447],{"class":304},[215,728,729],{"class":308},"reader",[215,731,428],{"class":304},[215,733,734],{"class":250},"))",[215,736,737],{"class":225},",\n",[215,739,741,743,745,747,750,753],{"class":217,"line":740},6,[215,742,477],{"class":225},[215,744,482],{"class":250},[215,746,681],{"class":225},[215,748,749],{"class":246},"anchor",[215,751,752],{"class":250},"() ",[215,754,755],{"class":225},"{}\n",[196,757,758,759,761,762,765],{},"The named subclass matters: the scanner registers the entity as ",[212,760,591],{},", and DI matches\n",[212,763,764],{},"user?: User"," by that checked type.",[767,768,769],"blockquote",{},[196,770,771,772,774,775,778,779,782,783,786],{},"Do not place pages under the auth ",[212,773,407],{},": the server catch-all uses ",[212,776,777],{},"\u002Fauth\u002F**",".\nThis site serves its forms at ",[212,780,781],{},"\u002Flogin"," and ",[212,784,785],{},"\u002Fregister"," for that reason.",[200,788,790],{"id":789},"one-resolution-three-readers","One resolution, three readers",[792,793,794,807],"table",{},[795,796,797],"thead",{},[798,799,800,804],"tr",{},[801,802,803],"th",{},"Reader",[801,805,806],{},"How identity arrives",[808,809,810,823,837],"tbody",{},[798,811,812,816],{},[813,814,815],"td",{},"the page",[813,817,818,819,822],{},"hydration — ",[212,820,821],{},"useCurrentUser()",", zero requests",[798,824,825,828],{},[813,826,827],{},"a handler",[813,829,830,831,834,835],{},"invocation state → a ",[400,832,833],{"href":94},"Collector"," fills ",[212,836,764],{},[798,838,839,842],{},[813,840,841],{},"a remote Frond",[813,843,844],{},"state is sent with the call — its collectors receive the same user",[196,846,847,848,851],{},"The browser cannot write this state: it is built server-side from the request context\n(",[400,849,126],{"href":850},"\u002Fdocs\u002Fclient\u002Fqueries-commands#the-wire--and-ssr",").",[196,853,854,855,857],{},"Next: ",[400,856,138],{"href":139}," — calling an operation server-side.",[859,860,861],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}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 .sQzsp, html code.shiki .sQzsp{--shiki-light:#E53935;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .s9AJx, html code.shiki .s9AJx{--shiki-light:#9C3EDA;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":210,"searchDepth":257,"depth":257,"links":863},[864,865,866],{"id":202,"depth":257,"text":203},{"id":387,"depth":257,"text":388},{"id":789,"depth":257,"text":790},"useCurrentUser, the auth surface, and how identity reaches handlers and remotes.","md",{},{"title":134,"description":867},"kzByBRC8_2CKeiE4Zc_d0Idjuqqur8V1cihN_jBvW28",1788560230820]