20 lines
754 B
JavaScript
20 lines
754 B
JavaScript
const axios = require('axios');
|
|
const qs = require('qs');
|
|
const Session = require("../models/Session");
|
|
|
|
async function refreshToken(token) {
|
|
try {
|
|
const session = await Session.findOne({where: {token: token}});
|
|
const {data} = await axios.post(DISCORD_TOKEN_ENDPOINT, qs.stringify({
|
|
client_id: process.env.CLIENT_ID, client_secret: process.env.CLIENT_SECRET, grant_type: "refresh_token",
|
|
refresh_token: session.refresh_token
|
|
}));
|
|
await Session.update({access_token: data.access_token, refresh_token: data.refresh_token}, {where: {token: token}});
|
|
return data.access_token;
|
|
} catch (e) {
|
|
return "could not refresh token";
|
|
}
|
|
|
|
}
|
|
|
|
module.exports.refreshToken = refreshToken; |