Este projeto demonstra uma aplicação usando Next.js para autenticação Discord OAuth2, permitindo que os usuários façam login com sua conta Discord e acessem um painel protegido.
- Integração Discord OAuth2: Autentica usuários de forma segura via Discord.
- Rotas Protegidas: Restringe o acesso a pagina de dashboard apenas para usuários autenticados.
- Gerenciamento de Sessão de Usuário: Mantém as sessões do usuário após o login bem-sucedido.
- Integração MongoDB: Registro de token JWT e dados de tokens de acesso do usuário.
- Next.js: Framework React para construir aplicações web full-stack.
- React: Biblioteca JavaScript para construir interfaces de usuário.
- Tailwind CSS: Um framework CSS utility-first para desenvolvimento rápido de UI.
- MongoDB: Banco de dados NoSQL para armazenamento de dados.
Antes de começar, certifique-se de ter o seguinte instalado:
- Node.js (versão LTS recomendada)
- npm ou Yarn
-
Clone o repositório:
git clone https://github.com/devjoseh/discord-login-oauth2.git cd discord-login-oauth2 -
Instale as dependências:
npm install # ou yarn install
Este projeto requer várias variáveis de ambiente para o Discord OAuth2 e conexão com o banco de dados.
-
Crie um arquivo
.env.local: Copie o conteúdo de.env.examplepara um novo arquivo chamado.env.localna raiz do seu projeto.cp .env.example .env.local
-
Obtenha as Credenciais do Discord OAuth2:
- Vá para o Portal do Desenvolvedor Discord.
- Faça login com sua conta Discord.
- Clique em "New Application" para criar uma nova aplicação.
- Dê um nome à sua aplicação.
- Navegue até a seção "OAuth2" -> "General".
- Copie seu Client ID e Client Secret.
- Em "Redirects", adicione a seguinte URL (substitua
YOUR_DOMAINpelo domínio da sua aplicação, ex:http://localhost:3000para desenvolvimento local):YOUR_DOMAIN/api/auth/callback/discordPara desenvolvimento local, isso geralmente seráhttp://localhost:3000/api/auth/callback/discord. - Salve as alterações.
-
Defina as Variáveis de Ambiente: Abra seu arquivo
.env.locale preencha as seguintes variáveis:CLIENT_ID=SEU_DISCORD_CLIENT_ID CLIENT_SECRET=SEU_DISCORD_CLIENT_SECRET ROUTE_BASE_API="https://discord.com/api/v10" # Gere uma string aleatória forte JWT_SECRET=CODIGO_JWT_SECRETO SERVER_BASE_URL=http://localhost:3000 MONGODB_URI=SUA_STRING_DE_CONEXAO_MONGODB
Para executar a aplicação em modo de desenvolvimento com hot-reloading:
npm run dev
# ou
yarn devA aplicação estará acessível em http://localhost:3000.
Para construir a aplicação para produção e executá-la:
-
Construa o projeto:
npm run build # ou yarn build -
Inicie o servidor de produção:
npm run start # ou yarn start
A aplicação estará tipicamente acessível em http://localhost:3000 (ou a porta configurada no seu ambiente).
Sinta-se à vontade para fazer um fork do repositório, criar uma nova branch e enviar pull requests.