O que nuxt-better-auth faz?
Use ao implementar autenticação em aplicações Nuxt com @onmax/nuxt-better-auth - fornece o composable useUserSession, helpers de autenticação do servidor, proteção de rotas e integração com plugins do Better Auth.
Funcionalidades
- Composable
useUserSession: Acessa dados da sessão do usuário de forma reativa. - Helpers do servidor: Funções para proteger rotas de API e verificar autenticação.
- Proteção de rotas: Middleware para proteger páginas inteiras da aplicação.
- Integração com plugins: Suporte para plugins do Better Auth como
better-auth-plugins.
Instalação
npm install @onmax/nuxt-better-auth
Configuração
Adicione ao nuxt.config.ts:
export default defineNuxtConfig({
modules: ['@onmax/nuxt-better-auth'],
betterAuth: {
// opções de configuração
}
})
Uso
No lado do cliente
<script setup lang="ts">
const { user, session, isAuthenticated, login, logout } = useUserSession()
async function handleLogin() {
await login({ email: '[email protected]', password: 'password' })
}
</script>
No lado do servidor
export default defineEventHandler(async (event) => {
const session = await getUserSession(event)
if (!session) {
throw createError({ statusCode: 401, statusMessage: 'Unauthorized' })
}
return { user: session.user }
})
Proteção de rotas
Use o middleware auth para proteger rotas:
// middleware/auth.global.ts
export default defineNuxtRouteMiddleware(async (to) => {
const { isAuthenticated } = useUserSession()
if (!isAuthenticated.value && to.path !== '/login') {
return navigateTo('/login')
}
})
Integração com plugins
A biblioteca suporta plugins do Better Auth. Exemplo com o plugin better-auth-plugins:
import { createBetterAuth } from 'better-auth'
import { magicLinkPlugin } from 'better-auth-plugins'
const auth = createBetterAuth({
plugins: [
magicLinkPlugin()
]
})
Documentação completa
Veja a documentação oficial para mais detalhes.