[{"data":1,"prerenderedAt":178},["ShallowReactive",2],{"navigation_docs":3,"landing":90},[4,14,23,40,73],{"title":5,"path":6,"stem":7,"children":8,"page":13},"Community","\u002Fdocs\u002Fcommunity","docs\u002Fcommunity",[9],{"title":10,"path":11,"stem":12},"Contributing","\u002Fdocs\u002Fcommunity\u002Fcontributing","docs\u002Fcommunity\u002F1.contributing",false,{"title":15,"path":16,"stem":17,"children":18,"page":13},"Concepts","\u002Fdocs\u002Fconcepts","docs\u002Fconcepts",[19],{"title":20,"path":21,"stem":22},"OIDC claims","\u002Fdocs\u002Fconcepts\u002Foidc-claims","docs\u002Fconcepts\u002F1.oidc-claims",{"title":24,"path":25,"stem":26,"children":27,"page":13},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[28,32,36],{"title":29,"path":30,"stem":31},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002Fgetting-started\u002F1.introduction",{"title":33,"path":34,"stem":35},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002Fgetting-started\u002F2.installation",{"title":37,"path":38,"stem":39},"Quick start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002F3.quick-start",{"title":41,"path":42,"stem":43,"children":44,"page":13},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[45,49,53,57,61,65,69],{"title":46,"path":47,"stem":48},"Managing applications","\u002Fdocs\u002Fguides\u002Fmanaging-applications","docs\u002Fguides\u002F1.managing-applications",{"title":50,"path":51,"stem":52},"Roles and permissions","\u002Fdocs\u002Fguides\u002Froles-and-permissions","docs\u002Fguides\u002F2.roles-and-permissions",{"title":54,"path":55,"stem":56},"Subscription plans","\u002Fdocs\u002Fguides\u002Fsubscription-plans","docs\u002Fguides\u002F3.subscription-plans",{"title":58,"path":59,"stem":60},"Consumption tracking","\u002Fdocs\u002Fguides\u002Fconsumption-tracking","docs\u002Fguides\u002F4.consumption-tracking",{"title":62,"path":63,"stem":64},"Custom auth page templates","\u002Fdocs\u002Fguides\u002Fcustom-templates","docs\u002Fguides\u002F5.custom-templates",{"title":66,"path":67,"stem":68},"Email setup","\u002Fdocs\u002Fguides\u002Femail-setup","docs\u002Fguides\u002F6.email-setup",{"title":70,"path":71,"stem":72},"Stripe integration","\u002Fdocs\u002Fguides\u002Fstripe-integration","docs\u002Fguides\u002F7.stripe-integration",{"title":74,"path":75,"stem":76,"children":77,"page":13},"Reference","\u002Fdocs\u002Freference","docs\u002Freference",[78,82,86],{"title":79,"path":80,"stem":81},"Environment variables","\u002Fdocs\u002Freference\u002Fenvironment-variables","docs\u002Freference\u002F1.environment-variables",{"title":83,"path":84,"stem":85},"API reference","\u002Fdocs\u002Freference\u002Fapi-reference","docs\u002Freference\u002F2.api-reference",{"title":87,"path":88,"stem":89},"Error codes","\u002Fdocs\u002Freference\u002Ferror-codes","docs\u002Freference\u002F3.error-codes",{"id":91,"title":92,"body":93,"description":92,"extension":170,"meta":171,"navigation":172,"path":173,"seo":174,"stem":176,"__hash__":177},"landing\u002Findex.md","",{"type":94,"value":95,"toc":167},"minimark",[96,130],[97,98,99,103,114],"u-page-hero",{},[100,101,102],"template",{"v-slot:title":92},"Auth Service",[100,104,105,106,113],{"v-slot:description":92},"Self-hosted OAuth 2.1 \u002F OIDC identity provider built on ",[107,108,112],"a",{"href":109,"rel":110},"https:\u002F\u002Fbetter-auth.com",[111],"nofollow","BetterAuth"," v1.5. Email\u002Fpassword auth, MFA (TOTP + passkeys), multi-app RBAC, subscription plans with feature flags, consumption tracking, and an embedded Vue 3 admin SPA.",[100,115,116,123],{"v-slot:links":92},[117,118,122],"u-button",{"color":119,"size":120,"to":30,"trailing-icon":121},"neutral","xl","i-lucide-arrow-right","Get started",[117,124,129],{"color":119,"size":120,"to":125,"icon":126,"target":127,"variant":128},"https:\u002F\u002Fgithub.com\u002Fcircle-rd\u002Fauth-service","i-simple-icons-github","_blank","outline","GitHub",[131,132,133,136],"u-page-section",{},[100,134,135],{"v-slot:title":92},"Key features",[100,137,138,144,149,154,158,162],{"v-slot:features":92},[139,140],"u-page-feature",{"description":141,"icon":142,"title":143},"Full Authorization Code + PKCE flow, refresh tokens, JWKS endpoint, and OpenID Connect discovery document at the issuer root.","i-lucide-lock","OAuth 2.1 \u002F OIDC",[139,145],{"description":146,"icon":147,"title":148},"TOTP (two-factor) and WebAuthn passkey \u002F YubiKey registration and authentication via BetterAuth plugins.","i-lucide-shield-check","Multi-factor authentication",[139,150],{"description":151,"icon":152,"title":153},"Each registered application has its own roles and permissions injected into the id_token as custom claims — no shared role namespace.","i-lucide-users","Multi-app RBAC",[139,155],{"description":156,"icon":157,"title":54},"Per-application subscription plans with JSON feature flags. Stripe billing integration synchronises plan status via webhooks.","i-lucide-layers",[139,159],{"description":160,"icon":161,"title":58},"Record arbitrary numeric metrics (API calls, storage, seats…) per user per application. Aggregate queries and admin reset built-in.","i-lucide-bar-chart-2",[139,163],{"description":164,"icon":165,"title":166},"Embedded Vue 3 admin dashboard for managing applications, users, roles, plans, and sessions — served directly by the backend.","i-lucide-layout-dashboard","Admin SPA",{"title":92,"searchDepth":168,"depth":168,"links":169},2,[],"md",{},true,"\u002F",{"title":102,"description":175},"Self-hosted OAuth 2.1 \u002F OIDC identity provider built on BetterAuth — multi-app RBAC, MFA, passkeys, and subscription management.","index","3YVIQ3tRzZGrGiP4fbxxjOzlivI0YTllrRZ0oC5l4wk",1775998223867]