[{"data":1,"prerenderedAt":384},["ShallowReactive",2],{"navigation":3,"\u002Fmodules\u002Fbearer-auth":94,"\u002Fmodules\u002Fbearer-auth-surround":379},[4,33,52],{"title":5,"path":6,"stem":7,"children":8,"icon":32},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22,27],{"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},"Quick start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-play",{"title":23,"path":24,"stem":25,"icon":26},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F4.configuration","i-lucide-settings",{"title":28,"path":29,"stem":30,"icon":31},"Production","\u002Fgetting-started\u002Fproduction","1.getting-started\u002F5.production","i-lucide-shield-check","i-lucide-rocket",{"title":34,"path":35,"stem":36,"children":37,"icon":51},"Composable Endpoints","\u002Fcomposables","2.composables\u002F1.index",[38,41,46],{"title":39,"path":35,"stem":36,"icon":40},"Overview","i-lucide-layout-grid",{"title":42,"path":43,"stem":44,"icon":45},"Requirements","\u002Fcomposables\u002Frequirements","2.composables\u002F2.requirements","i-lucide-list-checks",{"title":47,"path":48,"stem":49,"icon":50},"Recipes","\u002Fcomposables\u002Frecipes","2.composables\u002F3.recipes","i-lucide-book-marked","i-lucide-blocks",{"title":53,"icon":54,"path":55,"stem":56,"children":57,"page":93},"Modules","i-lucide-package","\u002Fmodules","3.modules",[58,63,68,73,78,83,88],{"title":59,"path":60,"stem":61,"icon":62},"Identity management","\u002Fmodules\u002Fidentity-management","3.modules\u002F1.identity-management","i-lucide-user-cog",{"title":64,"path":65,"stem":66,"icon":67},"Cookie auth","\u002Fmodules\u002Fcookie-auth","3.modules\u002F2.cookie-auth","i-lucide-cookie",{"title":69,"path":70,"stem":71,"icon":72},"Bearer auth","\u002Fmodules\u002Fbearer-auth","3.modules\u002F3.bearer-auth","i-lucide-key",{"title":74,"path":75,"stem":76,"icon":77},"JWT","\u002Fmodules\u002Fjwt","3.modules\u002F4.jwt","i-lucide-fingerprint",{"title":79,"path":80,"stem":81,"icon":82},"Passkeys","\u002Fmodules\u002Fpasskeys","3.modules\u002F5.passkeys","i-lucide-scan-face",{"title":84,"path":85,"stem":86,"icon":87},"ReAuth","\u002Fmodules\u002Freauth","3.modules\u002F6.reauth","i-lucide-shield-alert",{"title":89,"path":90,"stem":91,"icon":92},"External OAuth","\u002Fmodules\u002Fexternal-oauth","3.modules\u002F7.external-oauth","i-lucide-log-in",false,{"id":95,"title":69,"body":96,"description":372,"extension":373,"links":374,"meta":375,"navigation":376,"path":70,"seo":377,"stem":71,"__hash__":378},"docs\u002F3.modules\u002F3.bearer-auth.md",{"type":97,"value":98,"toc":362},"minimark",[99,112,117,158,162,200,204,247,251,315,319,330,334,339,343,358],[100,101,102,103,107,108,111],"p",{},"ASP.NET Core Identity ",[104,105,106],"strong",{},"bearer token"," sign-in (not JWT). Pair with ",[109,110,59],"a",{"href":60},".",[113,114,116],"h2",{"id":115},"when-to-choose-bearer-vs-jwt","When to choose bearer vs JWT",[118,119,120,133],"table",{},[121,122,123],"thead",{},[124,125,126,130],"tr",{},[127,128,129],"th",{},"Stack",[127,131,132],{},"Use when",[134,135,136,147],"tbody",{},[124,137,138,144],{},[139,140,141],"td",{},[104,142,143],{},"Identity bearer",[139,145,146],{},"You want Identity's built-in access\u002Frefresh token format",[124,148,149,155],{},[139,150,151],{},[104,152,153],{},[109,154,74],{"href":75},[139,156,157],{},"You want JWT Bearer auth + HttpOnly refresh cookie with hashed storage and reuse detection",[113,159,161],{"id":160},"di","DI",[163,164,169],"pre",{"className":165,"code":166,"language":167,"meta":168,"style":168},"language-cs shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","builder.Services.AddBearerAuthEndpoints(); \u002F\u002F ReAuth schemes + rate limits\n","cs","",[170,171,172],"code",{"__ignoreMap":168},[173,174,177,181,184,187,189,193,196],"span",{"class":175,"line":176},"line",1,[173,178,180],{"class":179},"sTEyZ","builder",[173,182,111],{"class":183},"sMK4o",[173,185,186],{"class":179},"Services",[173,188,111],{"class":183},[173,190,192],{"class":191},"s2Zo4","AddBearerAuthEndpoints",[173,194,195],{"class":183},"();",[173,197,199],{"class":198},"sHwdD"," \u002F\u002F ReAuth schemes + rate limits\n",[113,201,203],{"id":202},"map","Map",[163,205,207],{"className":165,"code":206,"language":167,"meta":168,"style":168},"app.MapGroup(\"\u002Fidentity\").MapBearerAuthEndpoints\u003CAppUser>();\n",[170,208,209],{"__ignoreMap":168},[173,210,211,214,216,219,222,225,229,231,234,237,240,244],{"class":175,"line":176},[173,212,213],{"class":179},"app",[173,215,111],{"class":183},[173,217,218],{"class":191},"MapGroup",[173,220,221],{"class":183},"(",[173,223,224],{"class":183},"\"",[173,226,228],{"class":227},"sfazB","\u002Fidentity",[173,230,224],{"class":183},[173,232,233],{"class":183},").",[173,235,236],{"class":191},"MapBearerAuthEndpoints",[173,238,239],{"class":183},"\u003C",[173,241,243],{"class":242},"sBMFI","AppUser",[173,245,246],{"class":183},">();\n",[113,248,250],{"id":249},"routes","Routes",[118,252,253,266],{},[121,254,255],{},[124,256,257,260,263],{},[127,258,259],{},"Method",[127,261,262],{},"Path",[127,264,265],{},"Notes",[134,267,268,287,301],{},[124,269,270,275,280],{},[139,271,272],{},[170,273,274],{},"POST",[139,276,277],{},[170,278,279],{},"\u002Flogin",[139,281,282,283,286],{},"Issues Identity bearer tokens (",[170,284,285],{},"AccessTokenResponse","); rate-limited",[124,288,289,293,298],{},[139,290,291],{},[170,292,274],{},[139,294,295],{},[170,296,297],{},"\u002Frefresh",[139,299,300],{},"Refresh access token",[124,302,303,307,312],{},[139,304,305],{},[170,306,274],{},[139,308,309],{},[170,310,311],{},"\u002Flogout",[139,313,314],{},"Requires authorization",[113,316,318],{"id":317},"scheme-selection-on-login","Scheme selection on login",[100,320,321,322,325,326,329],{},"The shared Identity login handler also supports cookie selection query flags used by passkey flows (",[170,323,324],{},"useCookies"," \u002F ",[170,327,328],{},"useSessionCookies","). For a pure bearer stack, omit those flags so Identity bearer tokens are issued.",[113,331,333],{"id":332},"antiforgery","Antiforgery",[100,335,336,337,111],{},"Bearer-authenticated requests typically skip CSRF when not using the application cookie. See ",[109,338,42],{"href":43},[113,340,342],{"id":341},"related","Related",[344,345,346,353],"ul",{},[347,348,349,352],"li",{},[109,350,351],{"href":75},"JWT module"," for JWT",[347,354,355],{},[109,356,357],{"href":48},"Composable recipes",[359,360,361],"style",{},"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":168,"searchDepth":176,"depth":363,"links":364},2,[365,366,367,368,369,370,371],{"id":115,"depth":363,"text":116},{"id":160,"depth":363,"text":161},{"id":202,"depth":363,"text":203},{"id":249,"depth":363,"text":250},{"id":317,"depth":363,"text":318},{"id":332,"depth":363,"text":333},{"id":341,"depth":363,"text":342},"Identity bearer token login, refresh, and logout endpoints.","md",null,{},{"icon":72},{"title":69,"description":372},"SauQUVMM9WMVCzrfFPTyGFlXe9ZhfeIz-TFlmFMnlsk",[380,382],{"title":64,"path":65,"stem":66,"description":381,"icon":67,"children":-1},"Identity cookie login, logout, and CSRF token endpoints for SPA hosts.",{"title":74,"path":75,"stem":76,"description":383,"icon":77,"children":-1},"JWT access tokens with an HttpOnly refresh cookie, hashed storage, and reuse detection.",1785399440325]