@looksy/next
v1.2.7
Published
Autenticação modular para aplicações Next.js com suporte a:
Downloads
53
Readme
@looksy/next
Autenticação modular para aplicações Next.js com suporte a:
- ✅ Contexto React (client side)
- ✅ Server Actions (server side)
- ✅ Rota API dinâmica para callback de autenticação (
/api/auth/[...looksy]/route.ts)
📦 Instalação
npm install @looksy/next
# ou
pnpm add @looksy/next🧠 Uso do Provider (LooksyProvider)
Envolva o app com o provider
// app/layout.tsx
import { LooksyProvider } from "@looksy/next";
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<LooksyProvider>{children}</LooksyProvider>
</body>
</html>
);
}🧠 Uso no Client (@looksy/next ou @looksy/next/client)
Use useSession() nos componentes
'use client';
import { useSession } from '@looksy/next' ou import { useSession } from '@looksy/next/client';
export default function Dashboard() {
const { user, tenant, isLoading, login, signOut } = useSession();
return (
<div>
{isLoading ? 'Carregando...' : `Olá, ${user?.name ?? 'Visitante'}`}
<button onClick={login}>Entrar</button>
<button onClick={signOut}>Sair</button>
</div>
);
}🔐 Uso no Server (@looksy/next/server)
Use useSession() nos server components:
"use server";
import { useSession } from "@looksy/next/server";
export default async function Dashboard() {
const { user, tenant, isLoading, login, signOut } = useSession();
return (
<div>
{isLoading ? "Carregando..." : `Olá, ${user?.name ?? "Visitante"}`}
<button onClick={login}>Entrar</button>
<button onClick={signOut}>Sair</button>
</div>
);
}🌐 Rota de Callback (/api/[...looksy]/route.ts)
Essa rota trata automaticamente o retorno de autenticação do Looksy Auth:
// app/api/auth/[...looksy]/route.ts
export * from "@looksy/next/api/handlers";Ela cuida de:
- Coleta do
codede autorização - Troca por token
- Armazenamento do token em cookie
✨ Features
- 🔐 Login, cadastro e logout
- 🍪 Tokens salvos em cookie seguro
- 🚀 Server Actions prontas
- 🧠 Context API com sessão e tenants
📁 Importações disponíveis
// Client Side
import { LooksyProvider, useSession } from '@looksy/next' ou '@looksy/next/client';
// Server Side
import { useServerSession, handler } from '@looksy/next/server';
// API callback handler
export * from '@looksy/next/api/handlers';📝 Licença
MIT © 2025 Victor Freire
