Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3689

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nextjs-supabase-auth/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/nextjs-supabase-auth/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-auth

Ou 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.md
Conteú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

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3689
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas