Bonjour , j'ai essayé de faire un système de connexion avec discord mais je n'ai pas réussie quand on se connecte sa me redirige bien mais le résultat de l'access token est marqué 'undefined'
Voici mon code :
server.js :
api/discord.js :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 const express = require('express'); const path = require('path'); const app = express(); app.use('/static', express.static(path.join(__dirname, 'static'))); app.get('/', (req, res) => { res.status(200).sendFile(path.join(__dirname, 'index.html')); }); app.listen(50451, () => { console.info('Running on port 50451'); }); 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, }); } });
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 const express = require('express'); const dotenv = require('dotenv').config() const fetch = require('node-fetch'); const btoa = require('btoa'); const { catchAsync } = require('../utils'); const router = express.Router(); const scopes = ['identify', 'guilds']; const CLIENT_ID = process.env.CLIENT_ID; const CLIENT_SECRET = process.env.CLIENT_SECRET; const redirect = encodeURIComponent('http://ipdemamachine:50451/api/discord/callback'); router.get('/login', (req, res) => { res.redirect(`https://discord.com/api/oauth2/authorize?client_id=${CLIENT_ID}&redirect_uri=${redirect}&response_type=code&scope=identify%20guilds`); }); router.get('/callback', catchAsync(async (req, res) => { if (!req.query.code) throw new Error('NoCodeProvided'); const code = req.query.code; const creds = btoa(`${CLIENT_ID}:${CLIENT_SECRET}`); const response = await fetch(`https://discord.com/api/oauth2/token?grant_type=authorization_code&code=${code}&redirect_uri=${redirect}`, { method: 'POST', headers: { Authorization: `Basic ${creds}`, }, }); const json = await response.json(); res.redirect(`/?token=${json.access_token}`); })); module.exports = router;
Partager