Ecosystem
OpenApe Auth
DNS-based identity for humans and agents.
OpenApe Auth
@openape/core
The foundation package. Framework-agnostic, zero dependencies.
- DNS Discovery β resolve
_ddisa.{domain}TXT records to find the IdP - PKCE β code challenge/verifier generation for secure OAuth flows
- JWT β sign, verify, and validate DDISA assertion tokens
- Types β
DDISAAssertionClaims,ActorType,AuthFlowState, etc.
@openape/auth
Complete OIDC login protocol logic β both sides in one package.
IdP Side
handleAuthorize()β validate authorization requestshandleTokenExchange()β exchange codes for signed assertionsissueAssertion()β create minimal AuthN-JWTs withactclaim- WebAuthn β
createRegistrationOptions(),verifyRegistration(),createAuthenticationOptions(),verifyAuthentication()
SP Side
discoverIdP()β DNS-based IdP discovery via DoHcreateAuthorizationURL()β build OAuth redirect with PKCEhandleCallback()β exchange code, validate assertion
@openape/nuxt-auth-idp
Drop-in Nuxt module. Add it, configure it, you're an IdP.
Auto-registered routes:
/login,/register,/accountβ Passkey-based UI (overridable)/adminβ User and agent management/authorize,/tokenβ OAuth endpoints/.well-known/jwks.jsonβ Public key discovery/api/webauthn/*β Registration and login flows/api/admin/*β User, agent, and registration URL management
Configuration via openapeIdp in nuxt.config.ts:
openapeIdp: {
rpName: 'My IdP',
rpID: 'id.example.com',
rpOrigin: 'https://id.example.com',
requireUserVerification: true, // NIS2 strict mode
residentKey: 'required', // true passkey experience
attestationType: 'none', // or 'direct' for enterprise
}
@openape/nuxt-auth-sp
Drop-in Nuxt module. Stateless. Zero server storage.
Auto-registered routes:
/api/loginβ initiate DDISA login flow/api/callbackβ handle OAuth callback/api/logoutβ destroy session/api/meβ current user info/.well-known/sp-manifest.jsonβ SP metadata
Composable: useSpAuth() for client-side auth state.