Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

131
Visualizações
Mala solicitud en discord oauth

Estoy creando un inicio de sesión de Discord, pero cuando me redirigen, aparece el error. El error ocurre después de presionar autorizar en la página de Discord OAuth {"status":"ERROR","error":"Response code 400 (Bad Request)"} Aquí está mi código para Discord.js

 const express = require('express'); const router = express.Router(); const fetch = require('got'); const btoa = require('btoa'); const { catchAsync } = require('../utils'); const CLIENT_ID = '#'; const CLIENT_SECRET = '#'; const redirect = encodeURIComponent('https://ezapplications.live/api/discord/callback'); router.get('/callback', catchAsync(async (req, res) => { if (!req.query.code) throw new Error('NoCodeProvided'); const response = await fetch(`https://discordapp.com/api/oauth2/authorize?client_id=${CLIENT_ID}&scope=identify&response_type=code&redirect_uri=${redirect}`, { method: 'POST', body: new URLSearchParams({ client_id: CLIENT_ID, client_secret: CLIENT_SECRET, grant_type: "authorization_code", redirect_uri: "https://ezapplications.live/api/discord/callback", code: req.query.code }) }); const json = await response.json(); res.redirect(`/?token=${json.access_token}`); })); router.get('/login', (req, res) => { res.redirect(`https://discordapp.com/api/oauth2/authorize?client_id=${CLIENT_ID}&scope=identify&response_type=code&redirect_uri=${redirect}`); }); module.exports = router;

Aquí está mi código para Server.js

 const express = require('express'); const path = require('path'); const app = express(); app.get('/', (req, res) => { res.status(200).sendFile(path.join(__dirname, 'index.html')); }); app.use('/api/discord', require('./api/discord')); app.use((err, req, res, next) => { switch (err.message) { case 'NoCodeProvided': return res.status(400).send({ status: 'ERROR', error: err.message, }); default: return res.status(500).send({ status: 'ERROR', error: err.message, }); } }); app.listen(50451, () => { console.info('Running on port 50451'); });

Aquí está el código para utils.js

 // async/await error catcher const catchAsyncErrors = fn => ( (req, res, next) => { const routePromise = fn(req, res, next); if (routePromise.catch) { routePromise.catch(err => next(err)); } } ); exports.catchAsync = catchAsyncErrors;

No estoy seguro de por qué me sale este error ya que todo me parece bien, gracias.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Según los documentos de concesión de código de autorización , debe pasar los parámetros en el cuerpo de la solicitud en lugar de la cadena de consulta.

 const response = await fetch("https://discord.com/api/oauth2/token", { method: 'POST', headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ client_id: CLIENT_ID, client_secret: CLIENT_SECRET, grant_type: "authorization_code", redirect_uri: "https://ezapplications.live/api/discord/callback", code: req.query.code }).toString() });

Con respecto a la autenticación HTTP básica...

También puede pasar su client_id y client_secret como autenticación básica con client_id como nombre de usuario y client_secret como contraseña.

... pero realmente no veo el punto. Tu elección

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda