nextjs-supabase-auth
Ajuda seu agente a integrar autenticação Supabase com Next.js App Router. Garante uma conexão segura e eficiente entre os serviços.
O que ela faz
Esta ferramenta ajuda a conectar o sistema de login do Supabase com o seu site feito em Next.js. Ela permite que usuários criem contas, façam login e logout de forma segura.
Quando usar
- ✓Ao criar um site com Next.js e precisar de um sistema de login.
- ✓Quando você quer que os usuários possam se cadastrar e entrar no seu site.
- ✓Se você usa o Supabase e quer integrar o login dele no Next.js.
Exemplo do que pedir para a IA
“Como configuro o login do Supabase no meu projeto Next.js?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ela configura o Supabase para funcionar com o Next.js, criando as partes necessárias para o login e para proteger as páginas do seu site. Isso garante que apenas usuários logados possam ver certas áreas.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill nextjs-supabase-authOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/nextjs-supabase-auth/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Next.js + Supabase Auth
Integração especializada do Supabase Auth com o App Router do Next.js
Capacidades
- nextjs-auth
- supabase-auth-nextjs
- auth-middleware
- auth-callback
Pré-requisitos
- Habilidades necessárias: nextjs-app-router, supabase-backend
Padrões
Configuração do Cliente Supabase
Crie clientes Supabase devidamente configurados para diferentes contextos
Quando usar: Ao configurar a autenticação em um projeto Next.js
// lib/supabase/client.ts (Cliente do Navegador) 'use client' import { createBrowserClient } from '@supabase/ssr'
export function createClient() { return createBrowserClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY! ) }
// lib/supabase/server.ts (Cliente do Servidor) import { createServerClient } from '@supabase/ssr' import { cookies } from 'next/headers'
export async function createClient() { const cookieStore = await cookies() return createServerClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { cookies: { getAll() { return cookieStore.getAll() }, setAll(cookiesToSet) { cookiesToSet.forEach(({ name, value, options }) => { cookieStore.set(name, value, options) }) }, }, } ) }
Middleware de Autenticação
Proteja rotas e atualize sessões no middleware
Quando usar: Quando você precisa de proteção de rota ou atualização de sessão
// middleware.ts import { createServerClient } from '@supabase/ssr' import { NextResponse, type NextRequest } from 'next/server'
export async function middleware(request: NextRequest) { let response = NextResponse.next({ request })
const supabase = createServerClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { cookies: { getAll() { return request.cookies.getAll() }, setAll(cookiesToSet) { cookiesToSet.forEach(({ name, value, options }) => { response.cookies.set(name, value, options) }) }, }, } )
// Atualiza a sessão se expirada const { data: { user } } = await supabase.auth.getUser()
// Protege rotas do dashboard if (request.nextUrl.pathname.startsWith('/dashboard') && !user) { return NextResponse.redirect(new URL('/login', request.url)) }
return response }
export const config = { matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'], }
Rota de Callback de Autenticação
Lida com o callback do OAuth e troca o código por uma sessão
Quando usar: Ao usar provedores OAuth (Google, GitHub, etc.)
// app/auth/callback/route.ts import { createClient } from '@/lib/supabase/server' import { NextResponse } from 'next/server'
export async function GET(request: Request) { const { searchParams, origin } = new URL(request.url) const code = searchParams.get('code') const next = searchParams.get('next') ?? '/'
if (code) {
const supabase = await createClient()
const { error } = await supabase.auth.exchangeCodeForSession(code)
if (!error) {
return NextResponse.redirect(${origin}${next})
}
}
return NextResponse.redirect(${origin}/auth/error)
}
Autenticação em Server Actions
Lida com operações de autenticação em Server Actions
Quando usar: Login, logout ou cadastro a partir de Server Components
// app/actions/auth.ts 'use server' import { createClient } from '@/lib/supabase/server' import { redirect } from 'next/navigation' import { revalidatePath } from 'next/cache'
export async function signIn(formData: FormData) { const supabase = await createClient() const { error } = await supabase.auth.signInWithPassword({ email: formData.get('email') as string, password: formData.get('password') as string, })
if (error) { return { error: error.message } }
revalidatePath('/', 'layout') redirect('/dashboard') }
export async function signOut() { const supabase = await createClient() await supabase.auth.signOut() revalidatePath('/', 'layout') redirect('/') }
Obter Usuário em Server Component
Acesse o usuário autenticado em Server Components
Quando usar: Ao renderizar conteúdo específico do usuário no lado do servidor
// app/dashboard/page.tsx import { createClient } from '@/lib/supabase/server' import { redirect } from 'next/navigation'
export default async function DashboardPage() { const supabase = await createClient() const { data: { user } } = await supabase.auth.getUser()
if (!user) { redirect('/login') }
return ( <div>
…
Perguntas frequentes
O que é Supabase?
Supabase é uma plataforma que oferece um banco de dados e serviços como autenticação (login/cadastro) para desenvolvedores, funcionando como uma alternativa ao Firebase.
O que é Next.js?
Next.js é um framework popular para criar sites e aplicações web usando React, conhecido por sua performance e facilidade de uso.
Preciso saber programar muito para usar isso?
É recomendado ter um conhecimento básico de programação web e como o Next.js funciona, mas esta ferramenta simplifica bastante a parte de login.
Detalhes
Descrição original do autor
Expert integration of Supabase Auth with Next.js App Router
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3689
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC