Javascript 不一致的oauth API错误express.js
我已经创建了多个网站使用本教程,他们都工作完美,直到昨天。问题是,当用户进行身份验证并转到{discord response code}时,api在尝试使用access_令牌转换代码时出错。 这是我的discord api回调的代码:Javascript 不一致的oauth API错误express.js,javascript,node.js,api,express,discord,Javascript,Node.js,Api,Express,Discord,我已经创建了多个网站使用本教程,他们都工作完美,直到昨天。问题是,当用户进行身份验证并转到{discord response code}时,api在尝试使用access_令牌转换代码时出错。 这是我的discord api回调的代码: const router = express.Router(); const fetch = require('node-fetch'); const FormData = require('form-data'); const btoa = require
const router = express.Router();
const fetch = require('node-fetch');
const FormData = require('form-data');
const btoa = require('btoa');
const { catchAsync } = require(__dirname+'/utils');
const CLIENT_ID = process.env.CLIENT_ID;
const CLIENT_SECRET = process.env.CLIENT_SECRET;
const redirect = encodeURIComponent('https://mywebsite.com/api/discord/callback');
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}`);
});
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();
console.log(json)
res.redirect(`/finallogin/?token=${json.access_token}`);
}));
module.exports = router;
当用户进行身份验证时,他会被重定向到,我在控制台上看到以下错误:
error: 'invalid_request',
error_description: 'Missing "code" in request.'
}
这是完美的工作之前,只是随机打破了几天前在我所有的网站。任何帮助/解决方案/想法都将不胜感激
(注意:“”只是一个示例,而不是我的实际网站url)
谢谢,
realpower2map