[{"data":1,"prerenderedAt":235},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Ffaq":104,"\u002Fgetting-started\u002Ffaq-surround":230},[4,43,62],{"title":5,"path":6,"stem":7,"children":8,"icon":42},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,12,17,22,27,32,37],{"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",{"title":33,"path":34,"stem":35,"icon":36},"AuthEndpoints compared","\u002Fgetting-started\u002Fcompare","1.getting-started\u002F6.compare","i-lucide-git-compare",{"title":38,"path":39,"stem":40,"icon":41},"AuthEndpoints FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F7.faq","i-lucide-circle-help","i-lucide-rocket",{"title":44,"path":45,"stem":46,"children":47,"icon":61},"Composable Endpoints","\u002Fcomposables","2.composables\u002F1.index",[48,51,56],{"title":49,"path":45,"stem":46,"icon":50},"Overview","i-lucide-layout-grid",{"title":52,"path":53,"stem":54,"icon":55},"Requirements","\u002Fcomposables\u002Frequirements","2.composables\u002F2.requirements","i-lucide-list-checks",{"title":57,"path":58,"stem":59,"icon":60},"Recipes","\u002Fcomposables\u002Frecipes","2.composables\u002F3.recipes","i-lucide-book-marked","i-lucide-blocks",{"title":63,"icon":64,"path":65,"stem":66,"children":67,"page":103},"Modules","i-lucide-package","\u002Fmodules","3.modules",[68,73,78,83,88,93,98],{"title":69,"path":70,"stem":71,"icon":72},"Identity management","\u002Fmodules\u002Fidentity-management","3.modules\u002F1.identity-management","i-lucide-user-cog",{"title":74,"path":75,"stem":76,"icon":77},"Cookie auth","\u002Fmodules\u002Fcookie-auth","3.modules\u002F2.cookie-auth","i-lucide-cookie",{"title":79,"path":80,"stem":81,"icon":82},"Bearer auth","\u002Fmodules\u002Fbearer-auth","3.modules\u002F3.bearer-auth","i-lucide-key",{"title":84,"path":85,"stem":86,"icon":87},"JWT","\u002Fmodules\u002Fjwt","3.modules\u002F4.jwt","i-lucide-fingerprint",{"title":89,"path":90,"stem":91,"icon":92},"Passkeys","\u002Fmodules\u002Fpasskeys","3.modules\u002F5.passkeys","i-lucide-scan-face",{"title":94,"path":95,"stem":96,"icon":97},"ReAuth","\u002Fmodules\u002Freauth","3.modules\u002F6.reauth","i-lucide-shield-alert",{"title":99,"path":100,"stem":101,"icon":102},"External OAuth","\u002Fmodules\u002Fexternal-oauth","3.modules\u002F7.external-oauth","i-lucide-log-in",false,{"id":105,"title":38,"body":106,"description":223,"extension":224,"links":225,"meta":226,"navigation":227,"path":39,"seo":228,"stem":40,"__hash__":229},"docs\u002F1.getting-started\u002F7.faq.md",{"type":107,"value":108,"toc":211},"minimark",[109,114,118,122,125,129,137,141,144,148,151,155,162,182,186],[110,111,113],"h2",{"id":112},"does-this-replace-aspnet-core-identity","Does this replace ASP.NET Core Identity?",[115,116,117],"p",{},"No. It maps endpoints on top of Identity. You still have Identity, your user type, and EF Core.",[110,119,121],{"id":120},"cookie-sessions-or-jwt","Cookie sessions or JWT?",[115,123,124],{},"Both. Cookies for a first-party web app on the same site. JWT or Identity bearer tokens for mobile and SPA clients. Compose one stack or both.",[110,126,128],{"id":127},"are-passkeys-included","Are passkeys included?",[115,130,131,132,136],{},"Yes. WebAuthn register and login. Set ",[133,134,135],"code",{},"Passkeys.ServerDomain"," in Production. Passkeys sit next to password and 2FA. They do not replace Identity.",[110,138,140],{"id":139},"how-does-2fa-work","How does 2FA work?",[115,142,143],{},"Through Identity's 2FA. Endpoints for enable, recovery, and step-up ReAuth. Lockout-aware login is on by default.",[110,145,147],{"id":146},"can-i-map-only-some-of-the-endpoints","Can I map only some of the endpoints?",[115,149,150],{},"Yes. Start with the facade, then compose modules and prefixes when you need a custom path or a JWT-only API.",[110,152,154],{"id":153},"can-this-be-my-sign-in-with-google-provider-for-other-apps","Can this be my Sign in with Google provider for other apps?",[115,156,157,158,161],{},"No. Optional GitHub and Google login into your app is ",[133,159,160],{},"AuthEndpoints.External.OAuth",". If other apps need to treat you as the identity provider, that is OpenIddict (or similar), not this library.",[163,164,167],"callout",{"color":165,"icon":166},"warning","i-lucide-flask-conical",[115,168,169,172,173,177,178,181],{},[170,171,99],"a",{"href":100}," is a ",[174,175,176],"strong",{},"preview"," package with its own version. It is not included in the core ",[133,179,180],{},"AuthEndpoints"," NuGet package.",[110,183,185],{"id":184},"related","Related",[187,188,189,194,198,203,207],"ul",{},[190,191,192],"li",{},[170,193,33],{"href":34},[190,195,196],{},[170,197,18],{"href":19},[190,199,200],{},[170,201,202],{"href":45},"Composable endpoints",[190,204,205],{},[170,206,89],{"href":90},[190,208,209],{},[170,210,28],{"href":29},{"title":212,"searchDepth":213,"depth":214,"links":215},"",1,2,[216,217,218,219,220,221,222],{"id":112,"depth":214,"text":113},{"id":120,"depth":214,"text":121},{"id":127,"depth":214,"text":128},{"id":139,"depth":214,"text":140},{"id":146,"depth":214,"text":147},{"id":153,"depth":214,"text":154},{"id":184,"depth":214,"text":185},"Does AuthEndpoints replace Identity? Cookie or JWT? Passkeys, 2FA, composing routes, and Sign in with Google as a provider.","md",null,{},{"icon":41},{"title":38,"description":223},"bhHUji_GvsE-at3ZcIqVXlyHYzTE5pHqVsVfXZT67fY",[231,233],{"title":33,"path":34,"stem":35,"description":232,"icon":36,"children":-1},"How AuthEndpoints differs from wiring ASP.NET Core Identity yourself, from OpenIddict, and from Identity API endpoints.",{"title":49,"path":45,"stem":46,"description":234,"icon":50,"children":-1},"Compose Identity management, sign-in stacks, and passkeys on the prefixes your host needs.",1787938695529]