[{"data":1,"prerenderedAt":331},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Finstallation":94,"\u002Fgetting-started\u002Finstallation-surround":326},[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":13,"body":96,"description":319,"extension":320,"links":321,"meta":322,"navigation":323,"path":14,"seo":324,"stem":15,"__hash__":325},"docs\u002F1.getting-started\u002F2.installation.md",{"type":97,"value":98,"toc":311},"minimark",[99,104,139,151,154,208,219,223,230,260,264,267,288,294,298,307],[100,101,103],"h2",{"id":102},"nuget-package","NuGet package",[105,106,111],"pre",{"className":107,"code":108,"language":109,"meta":110,"style":110},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet add package AuthEndpoints --version 3.0.0-rc.3\n","bash","",[112,113,114],"code",{"__ignoreMap":110},[115,116,119,123,127,130,133,136],"span",{"class":117,"line":118},"line",1,[115,120,122],{"class":121},"sBMFI","dotnet",[115,124,126],{"class":125},"sfazB"," add",[115,128,129],{"class":125}," package",[115,131,132],{"class":125}," AuthEndpoints",[115,134,135],{"class":125}," --version",[115,137,138],{"class":125}," 3.0.0-rc.3\n",[140,141,142,143,150],"p",{},"Or use the latest version from ",[144,145,149],"a",{"href":146,"rel":147},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAuthEndpoints\u002F",[148],"nofollow","NuGet",".",[100,152,42],{"id":153},"requirements",[155,156,157,170],"table",{},[158,159,160],"thead",{},[161,162,163,167],"tr",{},[164,165,166],"th",{},"Requirement",[164,168,169],{},"Notes",[171,172,173,188,198],"tbody",{},[161,174,175,182],{},[176,177,178],"td",{},[179,180,181],"strong",{},".NET 10",[176,183,184,185],{},"Target framework ",[112,186,187],{},"net10.0",[161,189,190,195],{},[176,191,192],{},[179,193,194],{},"ASP.NET Core Identity",[176,196,197],{},"User store and sign-in",[161,199,200,205],{},[176,201,202],{},[179,203,204],{},"EF Core",[176,206,207],{},"Identity stores and JWT refresh-token table (when JWT is enabled)",[140,209,210,211,214,215,218],{},"Your host must register a ",[112,212,213],{},"DbContext"," that can serve as the Identity store (typically ",[112,216,217],{},"IdentityDbContext\u003CTUser>"," or a derived type).",[100,220,222],{"id":221},"package-contents","Package contents",[140,224,225,226,229],{},"The ",[112,227,228],{},"AuthEndpoints"," package includes:",[231,232,233,248,251,254,257],"ul",{},[234,235,236,237,240,241,240,244,247],"li",{},"Opinionated facade (",[112,238,239],{},"AddAuthEndpoints"," \u002F ",[112,242,243],{},"UseAuthEndpoints",[112,245,246],{},"MapAuthEndpoints",")",[234,249,250],{},"Identity management + cookie \u002F bearer sign-in",[234,252,253],{},"JWT (access token + refresh cookie)",[234,255,256],{},"Passkeys (WebAuthn)",[234,258,259],{},"ReAuth step-up",[100,261,263],{"id":262},"optional-external-oauth","Optional: External OAuth",[140,265,266],{},"For GitHub\u002FGoogle OAuth endpoints, add the separate preview package:",[105,268,270],{"className":107,"code":269,"language":109,"meta":110,"style":110},"dotnet add package AuthEndpoints.External.OAuth --version 3.0.0-preview.2\n",[112,271,272],{"__ignoreMap":110},[115,273,274,276,278,280,283,285],{"class":117,"line":118},[115,275,122],{"class":121},[115,277,126],{"class":125},[115,279,129],{"class":125},[115,281,282],{"class":125}," AuthEndpoints.External.OAuth",[115,284,135],{"class":125},[115,286,287],{"class":125}," 3.0.0-preview.2\n",[140,289,290,291,293],{},"See ",[144,292,89],{"href":90},". Versions are independent from the core package.",[100,295,297],{"id":296},"next-steps","Next steps",[140,299,300,301,303,304,150],{},"Continue to ",[144,302,18],{"href":19}," to wire the facade in ",[112,305,306],{},"Program.cs",[308,309,310],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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":110,"searchDepth":118,"depth":312,"links":313},2,[314,315,316,317,318],{"id":102,"depth":312,"text":103},{"id":153,"depth":312,"text":42},{"id":221,"depth":312,"text":222},{"id":262,"depth":312,"text":263},{"id":296,"depth":312,"text":297},"Add the AuthEndpoints NuGet package to your ASP.NET Core project.","md",null,{},{"icon":16},{"title":13,"description":319},"6aQA2c6chxNDZ2DGV3UKO4cGTwq9sn_ovIkt4PharbU",[327,329],{"title":10,"path":6,"stem":7,"description":328,"icon":11,"children":-1},"AuthEndpoints is an ASP.NET Core library of ready-made Identity auth endpoints for SPA backends.",{"title":18,"path":19,"stem":20,"description":330,"icon":21,"children":-1},"Wire the opinionated AuthEndpoints facade for cookie Identity and passkeys.",1785399440325]