Estado
Status do registry: UNPUBLISHED. Instale este SDK somente a partir do checkout do código-fonte do repositório; não use um registry de pacotes externo.
O status do pacote é Pacote atual. O módulo Nuxt, middlewarede servidor H3/Nitro e composables importados automaticamente estãoimplementados. Uma ida e volta real com o IdP em infraestrutura deprodução ainda está pendente de verificação manual.
Configuração do módulo
Adicione @vonvon-kit/nuxt ao array modules. O móduloimporta automaticamente todos os composables de @vonvon-kit/vue eregistra um plugin somente para cliente que instala VonvonPlugin.
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@vonvon-kit/nuxt'],
vonvon: {
browser: {
mode: 'oidc',
issuer: 'https://vonvon.id',
clientId: 'client_abc123',
redirectUri: 'https://app.example.com/auth/callback',
},
},
})Composables (importados automaticamente)
<script setup lang="ts">
// No import needed -- Nuxt auto-imports from @vonvon-kit/vue
const auth = useAuth()
const userRef = useUser()
const orgRef = useOrganization()
const sessionRef = useSession()
</script>
<template>
<div v-if="auth.isSignedIn">
Signed in as {{ auth.userId }}
<button @click="auth.signOut()">Sign out</button>
</div>
</template>Middleware de servidor (auth JWT)
createVonvonServerMiddleware retorna um handler H3 que verifica um JWT Bearer ou explícito da aplicação e grava em event.context.vonvonAuth. Configure sessões Core da mesma origem por sessionTokenExchange; URLs relativas do H3 v1 também exigem um requestOrigin confiável. Coloque o arquivo em server/middleware/ para o Nitro registrá-lo globalmente.
// server/middleware/vonvon.ts
import { createVonvonServerMiddleware } from '@vonvon-kit/nuxt'
export default createVonvonServerMiddleware({
jwtKey: JSON.parse(process.env.VONVON_JWKS_PUBLIC_KEY!),
issuer: 'https://acme.vonvon.id',
sessionTokenExchange: { endpoint: '/v1/sessions/token' },
requestOrigin: process.env.VONVON_APP_ORIGIN!,
protectedRoutes: ['/api/admin'],
})Lendo autenticação em rotas do servidor
// server/routes/api/me.get.ts
import { getVonvonAuth } from '@vonvon-kit/nuxt'
export default defineEventHandler((event) => {
const auth = getVonvonAuth(event)
if (!auth.userId) {
throw createError({ statusCode: 401, message: 'Unauthorized' })
}
return { userId: auth.userId, orgId: auth.orgId }
})API exportada
| Exportar | Tipo | Finalidade |
|---|---|---|
createVonvonServerMiddleware |
function | Factory de event handler H3: verifica JWT, grava emevent.context.vonvonAuth, protege rotas |
getVonvonAuth |
function | Lê AuthResult de event.context.vonvonAuth em rotas e handlers do servidor |
VONVON_AUTH_CONTEXT_KEY |
constante de string | Chave de contexto usada para armazenar o resultado de autenticação(‘vonvonAuth’) |
VonvonServerMiddlewareOptions |
type | jwtKey, issuer, authorizedParties, jwtCookieName, sessionTokenExchange, requestOrigin, protectedRoutes, onUnauthenticated |
Notas de segurança
event.context.vonvonAuthé apenas do lado do servidor e nunca éenviado ao navegador.- O middleware remove qualquer token de autenticação fornecido pelocliente e re-injeta apenas o resultado verificado.
- Coloque o arquivo de middleware em
server/middleware/paragarantir que cubra todas as rotas como middleware global do Nitro.